본문 바로가기

분류 전체보기191

23.07.24 KPT 회고 Keep 새로운 기능을 시도하려는 자세! 풀리퀘 열심히 한 것 github에서 머지 과정 중에 발생한 충돌을 잘 해결해낸 것 소통 열심히하고 적극적으로! 자기 객관화의 장인, 팀원 그루밍(으쌰으쌰)의 장인 Problem PR을 너무 많이 보낸 감이 있어서 어떤 상황에 풀 리퀘스트를 할 지, 좀 더 고민해봐야 할 것 같다. 커밋 과정 중에서 build.gradle 같은 환경변수에서 생긴 오류를 처리하는 과정이 아쉬웠다. 다른 사람의 코드를 더 꼼꼼히 읽고, 리뷰했으면 좋았을 듯 하다. 코드 컨벤션 통일하기 사용하지 않는 Setter나 NoArgsCoustructor같은 Annotation이 많았다. 와이어 프레임, 기능 구현의 우선순위 설정과 역할 배분이 부실했다. 모든 프론트 작업을 js의 .. 2023. 7. 24.
23.07.21 s3를 적용하기 위해 글들을 찾아보던 와중 버킷명과 접근키 등의 정보를 yml에 담아야 한다고 해서 해당 파일을 찾아보았는데, 글들이 소개하는 위치에는 properties밖에 없어서 임의로 만들어서 정보를 담거나 하는 등 여러 방법을 사용해도 인식을 못 해 알아보니, 보통 properties나 yml 하나만 사용하고 같이 사용할 경우 오버라이딩 순서에 따라 결과가 달라질 수있어 properties에 정보를 담고 yml 파일은 삭제하기로 했다. @Variable로 properties에 있는 변수들을 인식하지 못하는 일이 있었는데, lombok에 있는 에너테이션을 사용해서 생긴 문제였다. 아래를 import하니 해결됐다. import org.springframework.beans.factory.annotat.. 2023. 7. 21.
23.07.20 현재 진행중인 프로젝트에 적용하기 위해 aop에 대해 자세히 알아보려고 한다. AOP = Aspect Oriented Programming(관점 지향 프로그래밍)란 간단히 말해 공통적인 로직을 모듈화하여 관리하는 것이다. 인증, 트랜잭션, 로깅 등의 로직들을 AOP를 통해 관리하면 각 비즈니스 모듈에는 관심사에 대한 로직 위주만 남길 수 있다. 또한 추가 기능을 추가/수정할 때 비즈니스 모듈을 수정하지 않고 수행할 수 있다. spring에서 Spring AOP를 제공하지만, AspectJ를 AOP의 프레임워크로 사용할 수 있다. 위 둘을 비교하기 전, 핵심개념을 짚고 넘어가자. 아래 내용은 spring 공식 문서를 번역한 블로그를 참조했다. https://logical-code.tistory.com/11.. 2023. 7. 20.
23.07.19 프로필 수정, 비밀번호 수정 기능을 구현하던 와중 이 둘은 어차피 Authentication 인증을 통해 User 객체를 받기 때문에 UserRepository.findById 등을 통해 User 객체를 찾는 과정을 생략했었다. 그러나 이렇게 하니 객체상으론 연결되어있어 상태 메시지는 정상적으로 출력되나 데이터베이스로는 연결이 안되어있어 수정이 안되는 결과가 발생했다. 또한 비밀번호를 수정하는 과정에서 user.getPassword와 PasswordEncoder.encode(requestDto.getPassword)를 비교했더니 encoding 결과가 일치하지 않는 문제가 발생했다. 그래서 PasswordEncoder 내장함수인 matches를 활용해야 한다는 것을 알게 됐다. 비밀번호 수정 시 최근 3.. 2023. 7. 19.