본문 바로가기

코드숨 11주차 회고 한 것(Fact) 면접 준비 스프링 스케쥴링을 활용하여 피드 자동 등록 느낀 것(Feelings) 이번 주는 경추쪽에 통증이 와서 고생을 했다. 그로 인해 이번 주에 프로젝트 진행을 많이 하지 못하였는데 다시 한 번 건강의 중요성을 느끼게 되었다. 자기 선언(Affirmation) 남은 일주일간 최선을 다하자 현재 화면작업을 거의 하지 못했는데 이 부분도 빨리 작업해야 할 것 같다.
코드숨 10주차 회고 한 것(Fact) 유저 프로필 관련 기능 구현 Github Action으로 CI 설정 RSS를 통한 피드 기능 구현 느낀 것(Feelings) JPA 정확히 알고 사용하자 이번 주 진행하고 있는 RSS를 통한 피드 기능을 개발하던 중 로그의 레벨을 디버깅 레벨로 놓고 보니 피드를 저장할 때마다 insert query가 발생하는 것을 발견하였다. rss를 통해 등록되는 피드는 최신의 10개만 등록되기 때문에 큰 문제가 없을 수도 있지만 이를 하나씩 날리는 것 보다는 bulk로 묶어서 생성하는 것이 좋을 듯하여 saveAll을 사용하였고 hibernate의 batch_size를 1000으로 변경하였지만, 여전히 하나씩 insert query가 발생하는 것이었다. 원인을 찾아보니 ID를 자동 생성에 @Gene..
패스워드 암호화 패스워드를 왜 암호화해서 저장해야하는가 패스워드는 평문으로 저장하면 안됩니다. 그 이유는 다양하지만 큰 이유는 2가지 정도가 있습니다. 해당 서비스의 관리자가 db에서 모든 사용자의 비밀번호를 볼 수 있으며 db가 털리는 경우 공격자에게 계정 정보가 넘어갈 수 있기 때문 일반적으로 id와 password를 여러곳에서 쓰는 경우가 많아서 추가적인 피해가 발생할 수 있기 때문입니다. PasswordEncoder 스프링 시큐리티에서 비밀번호를 암호화 하도록 단방향 해시를 위한 PasswordEncoder 인터페이스와 구현체들을 지원하는데 그중에서 BcryptPasswordEncoder에대해 알아봅시다. BcryptPasswordEncoder Bcrypt 해시함수를 사용하여 패스워드를 암호화를 할 수 있습니다...
코드숨 9주차 회고 한 것(Fact) 프로젝트 주제 선정 및 기능 정의 서비스 객체 정의 개발 환경 세팅 Github OAuth 연동 느낀 것(Feelings) 주제 선정에 꽤 많은 고민을 하였고 한 달이라는 시간 내에 배운 내용을 사용하여 완성할 수 있는 주제를 정하게 되었다. 리액트를 사용하고 싶었으나 두 가지 모두를 잡기는 힘들 것 같아 백엔드에 더욱 집중할 수 있도록 thymeleaf 템플릿 엔진을 사용하기로 하였는데 이것 역시 꽤 많은 시간이 들어갈 것 같다. 자기 선언(Affirmation) 윤석님이 GitHub Pages로 사이트 배포에 관련된 주제로 짧은 세션을 진행하셨는데 다음주에는 CI도 적용할 수 있도록 해보면 좋을 듯 하다. 다음주 부터는 실질적으로 사용자가 할 수 있는 기능들을 구현할것 같다.
코드숨 8주차 주간회고 한 것(Fact) Spring REST Docs Docker 학습 스코페 참가 느낀 것(Feelings) Spring REST Docs를 공부하는데 래퍼런스 doc도 보았지만 우아한형제들 기술블로그의 글을 많이 참고하였다. 확실히 적용하기까지 어려운 부분이 있지만, API와 API 문서를 동일하게 관리할 수 있고 자동화할 수 있다는 점에서 다음 프로젝트 진행 후 API 문서가 필요할 때 적용해 볼 것이다. Docker CLI에 대해 정리를 해봤는데 작성하면서 docker docs를 보며 실습을 해봤는데 Docker를 왜 사용하는지에 대해 간접적으로 느껴볼 수 있었다. 자기 선언(Affirmation) 벌써 개인프로젝트가 다가왔다. 생각 해둔 주제는 몇가지 있었지만 선택하는게 쉽지는 않다. 집중해서 진행하..
Docker Cli 명렁어 정리 컨테이너 확인 Docker 컨테이너를 조회합니다. docker ps [옵션]-a 옵션 중지된 컨테이너까지 포함한 모든 컨테이너를 출력합니다. 컨테이너 실행 docker run [옵션] 이미지[:TAG] [command] ...-d 옵션 detached mode(백그라운드에서 실행) docker run -it -d openjdk:15 bash 999894c8a85bd306e08b5f15508694821b2638607e8414ef4130003d9b110231 docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 999894c8a85b openjdk:15 "bash" 2 seconds ago Up 1 second condescending_haslet..
코드숨 7주차 주간회고 한 것(Fact) Spring Security 학습 사용자 패스워드 암호화 느낀 것(Feelings) 이번 주는 과제를 진행하면서 가장 이슈가 많았던 한주였던 것 같다. 공부한 것을 정리하며 시작한 것은 좋았으나 과제를 진행하면서 눈에 잘 띄지 않는 실수로 버그를 발생하게 하였고 디버깅의 늪에 빠져 많은 시간을 낭비하였다. 과제를 진행하면서 가장 커밋을 못했던 주가 아니였나 싶다. 이번 주 과제를 진행하며 작성하던 코드를 커밋 없이 몇 번을 수정했는지 모르겠다. 내가 한 실수도 사실 안되던 상황을 설명드렸는데 잘되는데 어떤 문제가 있을까?라는 코멘트를 보고 내가 직접하던 테스트에서 문제가 있지 않을까?라는 생각을 하게 되었고 발견할 수 있었다. 자기 선언(Affirmation) 막히거나 문제가 있는 경우..
코드숨 6주차 주간 회고 한 것(Fact) JWT 학습 느낀 것(Feelings) JWT 토큰에 대해 들어본 적만 있고 그냥 지나쳐 왔던 것 같은데 이번 기회에 정리해 볼 수 있었다. 이후 refresh token을 구현해보려 하였으나 생각보다 더 많은 내용이 들어가야 했고 stash에 넣어둔 채 마무리를 하지 못하였다. 추후에라도 완성해보고 싶어 todo list에 추가하였다. 테스트 코드와 주석을 잘 작성하는 것에 대한 고민이 많았는데 같이 코드숨을 진행하고 있으시는 이동욱님이 공유해주신 글이 많이 도움이 되었다. 테크니컬 라이팅 4대 원칙 - 카카오엔터 기술 블로그 한 번 봤다고 바로 잘 작성할 수 있을 것이란 생각은 들지 않지만 읽어보면 많은 도움이 될만한 글이다. 자기 선언(Affirmation) 이번주 종립님이 주신 ..