본문 바로가기

내일배움캠프/Today I Learned

(47)
[TIL] 나의 마흔 일곱 번째 회고록 1. fetch조인 2. static 리포트? 3. 프로젝션? 4. 영속성컨텍스트(벌크연산후에는 영속성컨텍스트 초기화 무조건) 5. 싱글톤 6. 멀티쓰레드 7. Builder 의 역할 오늘은 김영한님 강의를 들으며 쿼리 dsl에 대해서 배웠다. 위에 적어놓은 것들은 강의를 들으면서 한번 찾아봐야겠다 싶은 키워드들만 뽑아보았고 내일은 김영한님 강의를 기반으로 실제 팀프로젝트를 복사해 여러 시도를 해봐야겠다고 생각했다.
[TIL] 나의 마흔 여섯번째 회고록 오늘은 통합 테스트와 단위 테스트에 대한 강의를 들었다. 이번 심화프로젝트 할때도 느꼈지만 생각보다 코드를 작성해서 빌드하고 테스트하는 과정을 반복하는 것이 꽤나 시간을 잡아 먹는 것을 느꼈다. 그러나 이러한 시간을 단축시켜주는 게 CI/CD이다. 테스트의 종류에는 단위테스트/ 통합테스트가 있는데 테스트도 나의 의도에 맞게 쪼개서 진행할 수가 있다. 단위 테스트 : 가장 작은 단위의 테스트 방식. 메서드 단위로 테스트를 수행하고, 의도한 결과값이 나오는지 확인하는 수준 (ex: controller, service, repository… 격리해서 따로따로) 통합 테스트 : 어플리케이션이 정상적으로 동작하는지 확인. 여러모듈을 함께 테스트 (ex: controller 메소드를 호출하면 controller →..
[TIL] 나의 마흔 다섯 번째 회고록 이번 '스프링 심화 프로젝트'를 하면서 크게 느낀 점이 있다. 단순한 제품 구매 서비스를 구현함에 있어서도 코드의 완성도를 어디까지 높일 수 있을지 고민하고 개선해야 한다는 점이다. 코드에 이정도면 되겠지..?는 없다. 프로젝트를 하면서 JPA이 제공해주는 기능이 많다는 것을 새삼 느꼈다. 그 중에서 내가 사용하고 있는 부분은 아주 극...극히 소수의 도구들로 뚝딱 거리고 있었다는 걸 알게되었다. 코드가 어디까지 완벽해야 하는지 스스로 어디까지 파볼 수 있는지 요즘 고민이 많다. 프로젝트를 마치며 이 개념은 머리에 남겨 앞으로 코드를 작성할 때 충분히 고려해야겠다고 생각한 개념이 있다. 1. OCP(Open Closed Principle) = 개방 폐쇄 원칙 개방 폐쇄의 원칙(OCP)이란 기존의 코드를 ..
[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. 싱글톤 패턴의 장점 ..
[TIL] 나의 마흔 한번째 회고록 1일 1개념 이번주는 프로젝트를 하면서 정확하게 알고싶었던 개념들을 하나씩 살펴보려고 한다. 그 중에서도 오늘은 @Bean과 @Component 차이점과 사용방법에 대해 알아보려고 한다:D 스프링은 개발의 제어권이 스프링 컨테이너(IoC 컨테이너)에 있다고 한다. IoC(Inversion Of Control)는 제어의 역전이라고 불린다. 스프링이 개발자 대신 객체를 제어하기 위해서는 객체들이 빈(Bean)으로 등록되어 있어야 한다. 스프링 MVC에서는 @Controller, @Service, @Repository 등으로 빈으로 등록할 수 있으며, configuration관련 객체들은 @Bean과 @Component으로 스프링 컨테이너에 객체를 Bean으로 등록할 수 있다. 그렇다면,, Bean과 Comp..
[TIL] 나의 마흔 번째 회고록 Today Error 팀 프로젝트 마무리 단계 2탄 팀프로젝트 최종 Test단계에서 Security와 관련된 Error를 팀원이 공유해주었다. [ Error 내용 ] ▶ 회원가입 후 로그인 시 발행 되는 토큰이 '정상적인 토큰 형식'이 아닐 경우에 Exception처리가 되지 않고 아무런 Message를 띄워주지 않는다. 아~~^_^ (처음 에러 공유 받았을 때 표정) SecurityConfig.java 파일에서 Exception처리를 따로 해주면 되겠네~ 응..아니야ㅎㅎ @Bean public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { http.csrf().disable(); http.sessionManag..