2023.04.24 ~ 2023.04.30
4월 24일 (월)
오늘 한 일
- 프로그래머스 알고리즘 Java lv.1 2문제 풀이
4월 25일 (화)
오늘 한 일
- Spring Lv3 Assignment 코드 리팩토링
- 스터디
- Object - equals 공부 ( int 형에서 equals 에러가 나기 때문에 integer 로 하기)
- JPA 연관관계 공부 단방향 양방향
- Generic 발표
4월 26일 (수)
오늘 한 일
- terminal에서 port 끊기
- lsof -i :8080 → PID 찾기
kill -9 53596 ← PID 번호
- Spring lv3 제출
- 스터디
- Optional
- JVM → Model, VO, View
- JPA 연관관계 단방향 ManyToOne, OneToMany
4월 27일 (목)
오늘 한 일
- 기술매니저님 면담
- Swagger
- 중복되는 코드를 모두 포함하려한다기 보다는 하나의 메소드는 하나의 기능만 할 수 있게
- Cascade 와 orphanRemoval 모두 데이터를 같이 날리지만 현업에서는 데이터를 같이 날리지 않고 soft하게 처리한다. 대부분 데이터 관리쪽에서 이루어지며 데이터를 일정기간 보존해야하는 의무가 있을 수도 있기 때문에.
- 과제에서 예외 메세지를 날리는거에 초점을 둔 것 같은데 그러한 것 보다는 예상하지 못한 에러에 대해 생각해보면서 예외처리를 하는거에 초점을 맞추는게 좋을 것 같다. 과제에서 메세지를 요구해서 대부분의 수강생들이 예외처리의 본질을 잘 가져가지 못하는 것 같다.
- spring security 는 custom으로 처리를 하지 못하는데 이에 대해 공부를 해보자
- ResponseEntity 이렇게 반환하는 것은 ResponseEntity를 두번 감싸는 것이다. 굳이 그럴 필요없이 ResponseEntity에 담아 보내면 된다.
4월 28일 (금)
오늘 한 일
- 트랜잭션 특강 - transaction의 격리 수준(Isolation Level) 꼭 알아보기 → 면접준비할 때 꼭 필요
- Spring Assignment Lv4
- Spring Security 설정
- Soft Delete 구현
- password encoder 구현
- 스터디
- 영속성
- 연관관계
- stack overflow 어노테이션
- 기술매니저님 리뷰 공유
내일 할 일
4월 29일 (토)
오늘 한 일
- 덕인님과 코드리뷰
- public PasswordEncoder passwordEncoder() { return new BCryptPasswordEncoder();}
- extends는 클래스 한 개만 상속 받을 수 있으며, 자식 클래스는 부모 클래스의 기능을 사용할 수 있다. implements는 여러 개의 interfaces를 상속 받을 수 있으며, 자식 클래스는 부모의 기능을 다시 정의해서 사용해야한다.
- 기술매니저님 이슈 체크
- fetchjoin, QueryDSL 공부하기
- application.properties 파일 gitignore 하기 or jasypt 라이브러리 이용하기
- Spring Lv4 Assignment 끝 https://github.com/taekk1a2a3a/myblog-hh99
내일 할 일
- JPA, hibernate 스터디 준비
- Spring security custom excemption
- WIL
- fetchjoin, QueryDSL, jasypt, Gitignore
4월 30일 (일)
오늘 한 일
일주일 회고
이번주는 팀과제를 코드리뷰 후 리팩토링하여 pull request를 통해서 진행해보았다. code with me 를 통해 진행했을 때는 한 기능을 같이 구현했을 때 커밋이 동시에 이루어지지 않아서 버전관리하기 힘들었었는데, 각자 기능을 분담하여 진행하니 커밋이 꼬이는 경우가 없었고 원할했다.
Spring Security를 통해서 유저의 정보를 받으니 코드가 훨씬 단조로워 졌고 각각의 기능만 수행할 수 있도록 리팩토링을 거치고 나니 비로소 객체 지향의 프로세스의 장점을 이해할 수 있었던 것 같다.
spring boot를 사용하면서 어떻게 내부 Java 로직이 짜여져 있는지에 대해서 특강을 주로 들었고 JPA에 대해 이해하는 시간을 가졌던 것 같다. EntityManager는 찾아 볼 수 없이 Repository만 사용해서 JPA의 개념이 확실하지 않았지만 특강에서 Raw JPA를 볼 수 있어 좋은 기회였다. 그럼에도 아직 정확히 이해한 것은 아니라고 느껴지기 때문에 ORM과 ORM의 솔루션인 Hibernate에 대해서 다음 한 주 동안 개념을 탄탄히 잡아야 겠다. 현재 과제에서 MVC 구조가 어떻게 되어있는지 하나하나 이해하는 시간을 가져야 될 것 같다.
하나 하나 깊게 파고들면 끝이 없고 커리큘럼은 빠듯해서 최적의 공부방법을 찾아야겠다. 물론 모든 걸 알고 넘어가면 좋겠지만 글을 읽거나 강의를 들어서 이해가 쉽지가 않다. 뭐든 내 손으로 직접 쳐보고 확인해야 이해가 빠른 것 같지만 또 어떻게보면 모르는 걸 무작정 치기도 힘들다… Cascade 와 orphanRemoval 의 차이를 확인하는 법이나 연관관계를 직접 이어보는 일도 쉽지 않다. 아직 많이 부족하지만 그래도 항해를 시작하면서 어느정도 혼자 성장하는 법에 대해 배운 것 같고, 같은 목표를 가진 좋은 사람들을 많이 만난 것 같아 기쁘다.