전체 글 333

spring - 32일차

SNS(카카오)로그인 및 회원가입 중 갑자기 발생한 500Error와 그에 내용은 NullpointException.. 디버깅 모드를 찍어봐도 알 수 없는 곳에서 에러가 발생하는 상황이었다. 찾아도 찾아도 안나오던 도중 원인 발견! 원인은 Controller에서의 어노테이션 문제였다. 기존의 Controller 에서의 컨트롤러 어노테이션이 @RestController 였던 것이 문제였다. @RestController 같은 경우에는 데이터를 Json 형태로 감싸서 바로 반환해주는 친구였고, @Controller는 주로 view를 활용하기 위해 사용하였지만! data를 보내줄 때는 @ResponseBody 를 사용해 Json형태로 보낼 수 있다는것! 즉, 내가 사용하는 지금의 controller는 데이터를 ..

spring - 31일차

클론코딩.. 회원가입, 로그인 기능 구현완료 고민했던 부분은, 다른 회원가입 페이지와는 달리 이메일과 비밀번호를 입력 후 가입을 하면, 개인정보(마이페이지)와 같은 페이지로 바로 넘어가 추가 정보를 입력하는 페이지(onboarding)로 넘어가게 되어있었다. 이때, 내가 고민을 한 부분은 회원가입을 한 이메일과 추가정보를 어떻게 매칭시켜줘야 하는 것인가에 대한 고민이었다. 처음에는 엔티티를 2개로 나눠 연관관계 매핑을 통해 회원정보를 DB에 저장하려고 하였다. 하지만, 회원 정보와 이메일을 매칭하기는 너무 어려웠고, 기술매니저님에게 피드백 받은 방법은 Entity를 하나로 하여, 회원가입 시에는 이메일과 비밀번호만 받고, 추가정보 페이지에서는 update를 통해 추가정보를 DB에 입력하는 것이었다. 이 ..

23.02.27 - 03.05 -WIL

미니프로젝트를 시작했지만 개인 사정으로 참여하지 못했다.. 돌아오자마자 바로 시작된 클론 프로젝트 주제를 선정하고 작업을 시작했을 때 느끼는 감정이 상당했다. 항해에 참여하지 못한 사이 나를 제외한 분들은 많은 성장을 해주셨고, 격차가 많이 벌어진 느낌이다. 그로 인해, 스스로 느끼는 불안감이 너무 커지고 있다. 스트레스도 많이 받는 느낌이고 아무것도 하고싶지 않다. 이번에 맡게 된 파트는 회원가입과 로그인 부분 회원가입을 하는 도중에 도저히 풀리지 않는 부분이 있다.. 진짜 모르겠다... 월요일(오늘) 팀원에게 모르겠다고 말하고 도와달라고 해야겠다. 더이상 미뤄지면 팀원들에게도 피해가 되면서 프로젝트 전체에 영향을 미칠 수도 있을 것 같다는 생각이 드네... 스스로 고민을 하다가도 모르는 부분이 있으면..

spring - 29일차

application.yml vs application.properties 코드에는 분명 이상이 없는것 같았는데 작동이 안됐다... 그 이유는 기존에 사용하던 application.properties 방식에서 application.yml 방식으로 변경했기 때문! 그에 따라 properties에서 사용하던 방식을 yml에 맞게 변경해주어야했다. 기존 코드 (preperties) spring.h2.console.enabled=true spring.datasource.url=jdbc:h2:mem:db;MODE=MYSQL; spring.datasource.username=sa spring.datasource.password= spring.thymeleaf.cache=false spring.jpa.properti..

spring - 28일차

클론코딩 시작 주제는 Pinterest 와 비슷한 서비스인 500px 을 클론한 "99px" 서비스를 구현하기로 했다. 내가 맡은 부분은 회원가입, 로그인, 소셜로그인(카카오), 그리고 서버 배포 부분이었다. 오늘 우선적으로 진행한 부분은 서버배포 이유는 소셜 로그인 테스트를 서버가 열려있어야 가능하다고 해주셔서 서버를 먼저 열었다. 서버 개설은 처음 웹 개발을 진행할 때 했던 경험이 있었고, 설명을 따라하다보니 큰 어려움은 없었다. GitBash에서 리눅스를 사용해 필요한 부분을 설치하고 서버를 작동하는 부분이 처음이고 익숙치 않다보니 헤매이긴 했지만, 성공적으로 서버를 돌릴 수 있었다. 이후, 회원가입을 구현하기 위해 프로젝트를 생성하고 패키지 구조를 작성하는데, 기존의 방법이 아닌 도메인형 패키지 ..

spring - 27일차

드디어 첫 미니 프로젝트가 끝이 났다. 사실 명확하게 내가 팀원들에게 무언가 많은 도움이 되지는 못했기에 죄송한 마음이 큰 첫 프로젝트였다. 팀원들과 구현하고자 했던 기능(웹소켓[채팅구현])을 팀원들과 소통하고 고민하고 시도해보고 싶었는데 아쉬웠다. 돌아왔을 때 팀원들 전부가 원했던 기능에서 이틀 삼일 정도 고민을 하면서도 구현을 하지 못한 것을 보면 확실히 쉽게 구현할 수 있는 기능은 아니었나보다. 아침까지 고민하시고, 그래도 해결못해서 아쉬워하는 팀원들을 보면서 나도 같이 괜히 아쉬웠다.. 아쉬움이 많이 남는 프로젝트였지만, 내일부터 또 시작되는 클론 코딩에서는 팀원들에게 최대한 도움이 되게끔 노력하고 같이 결과물을 만들어 원했던 서비스를 최대한 구현하는 목표를 가지고 임해야지 안되는건 없을 것이야...

spring - 21일차

미니 프로젝트 시작 프로젝트 기능 중 오늘 우리 팀의 목표는 회원가입, 로그인 창 구현이었다. 그 중에서 내가 맡은 부분은 회원가입 로직 구현 회원 가입 부분을 적용한 뒤 다른 팀원이 스프링 시큐리티를 적용하여 코드를 합친 후 테스트 진행 중 프로그램이 정상 작동 되고, 포스트맨에서 테스트 진행 시 회원가입과 로그인 진행되지 않았고 컨트롤러 자체가 작동하지 않았다. 원인은 시큐리티 부분에서 filter 부분의 문제였던 것! String token = jwtUtil.resolveToken(request); if (token != null){ if (!jwtUtil.validateToken(token)){ } Claims info = jwtUtil.getUserInfoFromToken(token); setA..

spring - 20일차

List findAllByOrderByCreatedAtDesc(); List postList = postRepository.findAllByOrderByCreatedAtDesc(); 함수명 확인할 것 ! Id 값이 들어갈 시에는 어떤 오류가 발생할지 장담을 못함...... @Transactional public PostResponseDto updatePost(Long id, PostRequestDto requestDto) { Post post = postRepository.findById(id).orElseThrow( () -> new IllegalArgumentException("해당 게시물이 없습니다.") ); if(!post.getPassword().equals(requestDto.getPasswo..

spring - 19일차

문제 - 예외처리(상태코드 반환)의 예제 코드를 보고 따라 쳤는데, 안됌.. 똑같은데 실행 안돼.. @ExceptionHandler(IllegalArgumentException.class) public ResponseEntity handleIllegalArgument(IllegalArgumentException e) { log.warn("handleIllegalArgument", e); ErrorCode errorCode = CommonErrorCode.INVALID_PARAMETER; return handleExceptionInternal(errorCode, e.getMessage()); } handelExceptrionInternal(errorCode, e.getMessage()); 이 부분에서 er..

spring - 18일차

정규식 or 정규표현식 특정한 규칙을 가진 문자열의 집합을 표현하는데 사용하는 형식의 언어 기본 개념 불리언 "또는" - 수직선을 사용해 여러 항목 중 선택을 하기 위해 구분 Ex_) gray|grey => "gray" 또는 "grey"와 일치 한다는 의미 그룹 묶기 괄호를 사용해서 연산자의 범위와 우선권을 정의 양의 지정 ? => 0번 또는 1차례까지의 발생을 의미 * => 0번 이상의 발생을 의미 + => 1번 이상의 발생을 의미 {n} => 정확히 n번 만큼 일치시킨다 {min,} => min 번 이상만큼 일치시긴다 {min, max} => 적어도 min, 최대 max 만큼 일치시킨다 @Pattern(regexp = "(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[@$!%*#?&]).{8,..

728x90