TIL 9

TIL - 20230523(모각코ON: 프로젝트 시작)

드디어 항해99실전 프로젝트를 시작했다. 조를 되게 잘 만난 것 같아서 기분이 좋다. 되게 잘하시는 프론트분께 부탁해서 리더 부리더를 신청했고, 미니프로젝트때 같은 조로 뵈었었던 백앤드분, 그리고 평소에 친하게 지내던 프론트분이 같은 조가 되었다. 어쩌다보니 평산신씨3명이 모여서 평산신씨 트리오가 되었다.ㅋㅋ 프로젝트 주제는 모각코ON:이다. 기획단계에서 처음에는 여행을 큰 틀로 가져가려고 했었다. 그런데 여행이라는 주제는 참 좋았지만서도, 빌드업을 하루 이틀 하다보니 다들 이건 좀 아니다 싶어 하시는게 눈에 보였고, 그래서 한번 기획을 엎게 되었다. 아이디어 회의부터 다시하게 되었고, 거듭해서 디자이너님, 프론트분들, 백앤드분들과 의견을 나누고 나눈 끝에 온라인으로 화상채팅방을 통해 만나서 모각코를 하..

TIL 2023.05.23

TIL - 20230504

스프링 시큐리티에 대해서 잘못 이해하고 있었다. 리프레시 토큰을 적용하고서 인증이 필요 없는 요청은 굳이 필터를 거치지 않게 하고 싶어서 방법을 알아보다가 결국 필터를 안거치게 하는건 불가능하는 것을 알게 되었다. 그리고 애초에 필터를 거쳐서 인증 객체가 생성되었을 때 config에 있는 설정을 통과시켜주고, permitAll이면 인증 객체가 생성되지 않아도 통과시켜주는 것인데, 나는 permitAll이면 그냥 필터도 안거치는 것으로 이해하고 있었다. 그래서 리프레시 토큰을 처음 적용했을 때 내가 로직을 잘못 짰는지 인증이 필요 없는 요청도 내가 설정한 엑세스 토큰이 만료되었다는 응답이 나오는게 문제였다. 위에 있는 내용을 몰랐어서 발생한 문제였는데, 디버그를 찍어보니 필터를 도는 것을 확인 할 수 있었..

TIL 2023.05.05

TIL - 20230427

스프링주차 과제리뷰 스터디에서 내 코드에 대해서 지적을 받았다. 좋아요 테이블 하나로 해서 게시글 좋아요와 댓글 좋아요 기능을 구현했는데, 좋아요가 있는지 확인하고, 취소하고, 갯수를 세는 코드를 게시글 좋아요와 댓글 좋아요에서 공용으로 사용했다. 그래서 게시글 좋아요는 댓글 좋아요와 겹치면 안되어서 게시글 좋아요를 확인할 때에는 댓글 아이디에 null값을 넣어서 체크를 했다. findByUserIdAndPostIdAndCommentId(user.getId(), postId, null); 이 코드에서 sql자체에서는 문법에 오류가 없기 때문에 결과로 오류를 반환하지 않지만, DB에서 게시글의 좋아요를 검색할 때 댓글의 아이디까지 검색해야해서, 한번의 검색당 한번의 오버헤드가 일어나고, 이는 N번의 검색당..

TIL 2023.04.28

TIL - 20230425

5레벨 과제를 리펙토링 하다가 빼먹고 구현하지 않은 기능을 발견했다. 좋아요가 DB에는 쌓이는데, 그게 게시글을 조회했을 때 좋아요 갯수가 0으로 나오게 되어있었다. 좋아요 생성 API에서는 반환할 때 DB에서 좋아요의 갯수를 세어서 반환하게끔 코드를 썼는데, 그게 게시글을 조회할 때의 반환값에는 적용되지 않는게 문제였다. https://github.com/been1118/springPrac-Board GitHub - been1118/springPrac-Board Contribute to been1118/springPrac-Board development by creating an account on GitHub. github.com 그래서 처음에는 Entity에 Repository 생성자 주입을 해줘서..

TIL 2023.04.26

TIL - 20230424

항해 주특기주차에서 레벨 3과제를 진행하면서 생겼던 고민이다. 레벨 3에서는 게시글에 댓글기능을 추가하는 내용이 있었다. 댓글을 추가하기 위해서 코드를 짜는데, 게시글과 댓글 사이에 무한재귀현상이 문제였다. https://github.com/been1118/springPrac2-jwt GitHub - been1118/springPrac2-jwt Contribute to been1118/springPrac2-jwt development by creating an account on GitHub. github.com 처음에는 뭐가 문제인지도 몰라서 페어분이랑 이 문제에 대해서 대략 6시간정도 고민했던 것 같다. 에러를 검색하고 찾아보고를 반복하면서 찾아낸 방법은 @JsonIgnore어노테이션을 사용하는 것이..

TIL 2023.04.24

TIL - 20230417

오늘은 스프링주차 레벨 1 과제 한 내용을 리뷰해보았다. https://github.com/been1118/springPrac-crud PostService에서 게시글이 존재하지 않을때와 비밀호가 일치하지 않을 때 오류를 던지는 코드가 여러번 사용되어서 밑에 따로 메서드로 빼주었는데, 그 메서드를 다른 클래스로 분리를 해야할지 고민을 했었다. @Service @RequiredArgsConstructor public class PostService { private final PostRepository postRepository; @Transactional public ResponseDto createPost(PostRequestDto requestDto) { Post post = new Post(requ..

TIL 2023.04.18

TIL - 20230411

오늘은 자바 스터디때 할 내용을 미리 보다가 인터페이스의 다중 상속 충돌에 대해서 궁금증이 생겼었다. 스터디를 진행하는 방식이 먼저 문제를 만들어서 각자 풀어오고 자신의 풀이나 생각을 공유하는 형식이었는데, 인터페이스 다중 상속 충돌 A와 B, 두 개의 인터페이스가 있습니다. 두 인터페이스 모두 sameName이라는 이름의 메서드를 가지고 있습니다. 두 인터페이스를 모두 구현하는 (다중 상속) 클래스 C가 있다면, 두 인터페이스의 메서드를 어떻게 오버라이딩 할 수 있을까요? 라는 문제인데, A와 B, 각각의 인터페이스에서 sameName()이라는 메서드가 정의되어 있고, 그것을 C가 다중 상속을 받았을 때 어떻게 되는지 물어보는 것이다. 나는 C클래스에서 sameName()메서드를 구현하면 당연히 오버라..

TIL 2023.04.12

TIL - 20230408

자바 스터디에서 스터디원 분들이 푸실 문제들을 만들다가 밤을 새버려서 하루 종일 피곤했다. 그래서 강의를 들으면 졸면서 집중 못할 것 같아서 오늘도 하루종일 알고리즘 문제를 풀었다. 오늘도 어김없이 삽질을 좀 했다. https://eastlight0418.tistory.com/39 프로그래머스 - 신규 아이디 추천 (JAVA) 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 eastlight0418.tistory.com 코드를 다 쓰고, 코드를 실행하니 별 문제 없이 성공하길래 제출 후 체점하기를 해보니 몇개의 문제가 실패가 뜨는 것이었다. 문제가 사실 단계별로 코드를 ..

TIL 2023.04.09

TIL - 20230407

오전부터 프로그래머스의 알고리즘 문제들을 풀었다. 다른 문제들은 생각 쫌만 해서 다 잘 풀렸는데, 콜라츠 추측이라는 문제에서 한번 막혔다. https://eastlight0418.tistory.com/37 프로그래머스 - 콜라츠 추측 (JAVA) 문제 설명 예를 들어, 주어진 수가 6이라면 6 → 3 → 10 → 5 → 16 → 8 → 4 → 2 → 1 이 되어 총 8번 만에 1이 됩니다. 위 작업을 몇 번이나 반복해야 하는지 반환하는 함수, solution을 완성해 주세요. eastlight0418.tistory.com 아무리 생각해도 내가 짠 코드가 맞는 것 같은데 안풀려서 답답했다. 입출력 예시의 3번째 값 626331을 실행하면 1이 될 때까지 500번을 시도해도 1이 안되어서 -1을 리턴해야 하..

TIL 2023.04.08