본문 바로가기

내일배움캠프

(57)
[TIL] 나의 마흔 일곱 번째 회고록 1. fetch조인 2. static 리포트? 3. 프로젝션? 4. 영속성컨텍스트(벌크연산후에는 영속성컨텍스트 초기화 무조건) 5. 싱글톤 6. 멀티쓰레드 7. Builder 의 역할 오늘은 김영한님 강의를 들으며 쿼리 dsl에 대해서 배웠다. 위에 적어놓은 것들은 강의를 들으면서 한번 찾아봐야겠다 싶은 키워드들만 뽑아보았고 내일은 김영한님 강의를 기반으로 실제 팀프로젝트를 복사해 여러 시도를 해봐야겠다고 생각했다.
[WIL] 나의 열번째 회고록 최종 프로젝트까지 얼마 남지 않았기 때문에 심화 프로젝트에서 부족한 점을 보강하면서 쿼리 DSL이나 jpa심화강의를 다시 들으려고 한다. 내배캠에서 지원해주는 강의 이외에도 요즘 대원들 사이에서 유명한김영한 강의를 개인 사비로 결제했다. 다음 프로젝트에서 부리더 지원을 했기 때문에 팀원들에게 하나라도 도움이 되기 위해서 기본적으로 더 많이 노력해야겠다 싶다. 최종프로젝트 아이디어, 기획 부분을 최소 1주일 이상 잡아먹을텐데 그 시간을 단축하기 위해서 남은 일주일동안 혼자서 아이디어를 여러개 생각해봐야겠다.
[TIL] 나의 마흔 여섯번째 회고록 오늘은 통합 테스트와 단위 테스트에 대한 강의를 들었다. 이번 심화프로젝트 할때도 느꼈지만 생각보다 코드를 작성해서 빌드하고 테스트하는 과정을 반복하는 것이 꽤나 시간을 잡아 먹는 것을 느꼈다. 그러나 이러한 시간을 단축시켜주는 게 CI/CD이다. 테스트의 종류에는 단위테스트/ 통합테스트가 있는데 테스트도 나의 의도에 맞게 쪼개서 진행할 수가 있다. 단위 테스트 : 가장 작은 단위의 테스트 방식. 메서드 단위로 테스트를 수행하고, 의도한 결과값이 나오는지 확인하는 수준 (ex: controller, service, repository… 격리해서 따로따로) 통합 테스트 : 어플리케이션이 정상적으로 동작하는지 확인. 여러모듈을 함께 테스트 (ex: controller 메소드를 호출하면 controller →..
[TIL] 나의 마흔 다섯 번째 회고록 이번 '스프링 심화 프로젝트'를 하면서 크게 느낀 점이 있다. 단순한 제품 구매 서비스를 구현함에 있어서도 코드의 완성도를 어디까지 높일 수 있을지 고민하고 개선해야 한다는 점이다. 코드에 이정도면 되겠지..?는 없다. 프로젝트를 하면서 JPA이 제공해주는 기능이 많다는 것을 새삼 느꼈다. 그 중에서 내가 사용하고 있는 부분은 아주 극...극히 소수의 도구들로 뚝딱 거리고 있었다는 걸 알게되었다. 코드가 어디까지 완벽해야 하는지 스스로 어디까지 파볼 수 있는지 요즘 고민이 많다. 프로젝트를 마치며 이 개념은 머리에 남겨 앞으로 코드를 작성할 때 충분히 고려해야겠다고 생각한 개념이 있다. 1. OCP(Open Closed Principle) = 개방 폐쇄 원칙 개방 폐쇄의 원칙(OCP)이란 기존의 코드를 ..
[WIL] 나의 아홉 번째 회고록 이번 주간에는 혼자서 게시판을 만들어보았다. 혼자서 해본 프로젝트였지만 Git 사용법을 잊어버릴까봐 Git bash를 사용하여 버전관리도 해보았다. 덕분에 헷갈렸던 Git 명령어들도 손에 조금씩 익힐 수 있었다. 익숙하지 않은 내용들을 뒤로 미루기 바빴는데 지금이라도 익숙하지 않은 내용을 더 파고들어야겠다고 생각했다. 이번 주간에 참고했던 Git 명렁어 들을 잠깐 정리해볼까 한다. Git 기본 명령어 현재 상태 확인 (내가 제일 많이 사용하는 명령어) git status 전체 로그 확인 git log git 저장소 생성하기 git init 저장소 복제 및 다운로드 git clone [https: ~~~~ ] 저장소에 코드 추가 git add git add * 커밋에 파일의 변경 사항을 한번에 모두 포함 ..
[TIL] 나의 마흔 네번째 회고록 Today Error 혼자 만드는 게시판 Error 1탄 디테일한 부분까지 하나하나 찾아보면서 다시 만들다보니 새로운 에러들을 많이 만나게 되었다. 특히 Spring Security를 구현하면서 Jwt토큰을 발행하고 Jwt 인증하면서 userDetailService.loadUserByUsername(username); 에서 return하는 값이 null인 것이다. // JWT 토큰에서 인증 정보 조회 public Authentication getAuthentication(String username) { UserDetails userDetails = userDetailsService.loadUserByUsername(username); return new UsernamePasswordAuthenticat..
[TIL] 나의 마흔 세번째 회고록 혼자서 만들어 보는 Blog 프로젝트 했던 내용을 처음부터 혼자 완성해보려고 한다! 우선 Entity @(어노테이션)부터 몰랐거나 헷갈렸던 @(어노테이션)들을 천천히 정리해가면서 리뷰 gogo @Entity(name="USERS") @Getter @NoArgsConstructor public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(nullable = false) private String password; @Column(nullable = false) private String username; @Column(nullable = false) @Enumerated(EnumType..
[TIL] 나의 마흔 두번째 회고록 1일 1개념 싱글톤 패턴(Singleton Pattern) 이란? 말로만 들어봤던 Singleton Pattern은 무엇을 말하는 것까 궁금했었다. 궁금한 건 못참으니까 바로 검색해보았다. 싱글톤 패턴이란? -> 어플리케이션이 시작될 때 어떤 클래스가 최초 한번만 메모리를 할당하고(static) 그 메모리에 인스턴스를 만들어 사용하는 디자인 패턴 인스턴스가 1개만 생성되는 특징을 가진 싱글톤 패턴을 이용하면 하나의 인스턴스를 메모리에 등록해서 여러 쓰레드가 동시에 해당 인스턴스를 공유하며 사용할 수 있게끔 할 수 잇기 때문에 요청이 많은 곳에서 사용하면 효율을 높일 수 있다. But!! 싱글톤을 만들 때 동시성(Concurrency) 문제를 고려해서 설계해야 한다는 점이 있다. 1. 싱글톤 패턴의 장점 ..