스프링 4

@Mappings 사용하기

[ 바로가기 목차 ] 들어가기 알아보기 마무리 [ 들어가기 ] 여러 테이블 혹은 DB에서 데이터를 가져와서 원하는 작업을 하는 방법에는 여러가지가 있습니다. 가져온 데이터를 원하는 형식이나 여러 객체를 하나의 객체로 합치는 일은 매우 흔한 일입니다. 이때 이러한 매핑 작업을 직접 개발자가 하게 된다면 문제가 발생할 수 있습니다. - 코드의 중복 - 생산성 저하 - 실수로 인한 데이터 누락 - 복잡한 로직까지 추가된다면 코드 가독성 저하 이러한 문제를 해결하기 위해 스프링(Spring)에서는 라이브러리를 지원합니다. - Mapstruct - ModelMapper 맵 스트럭트(MapStruct) 와 모델 매퍼(ModelMapper)의 차이점을 간단하게 설명하자면 객체의 생성 방식에 조금의 차이를 가지고 있습..

스프링 2023.12.13

[#2] Spring Securiy Context Holder

목차 들어가기 Spring Security Context Holder 마무리 들어가기 앞서 [#1]에서 간략하게 어떻게 필터들이 동작하고, 시큐리티가 동작하는지를 확인할 수 있었다. 이 속에서 우리는 Context라는 것을 알게 되었다. 시큐리티는 사용자의 정보를 담기위해 Security Context라는 것을 만들어서 사용자의 Authenticaton(인증) 객체를 확인하고, 저장하는 과정을 가지게 되며, 이 인증된 객체를 전역에서 꺼내쓸 수 있다. 이러한 이유는 인증된 객체는 ThreadLocal에 저장되어 있기 때문이라고 간단하게 언급했었는데, 해당 객체에 관한 인증이 완료되면 HttpSession에 저장되어 애플리케이션 전역에서 참조가 가능한 것이다. 그럼 어떻게 내부적으로 동작을 하는 것일까? ..

스프링 2023.01.03

Day.14 타임어택 및 웹 애플리케이션

알고리즘 타임어택이 있던 당일 금일 9시부터 11시까지 Python 또는 Java를 이용해서 문제를 해결 솔직히 알고리즘에 자신이 없었지만 한번 풀어보자는 생각을 했다. 문제를 확인해보니 엥?.... 쉬운데?... 난이도는 쉬워서 수월하게 문제를 풀 수 있었지만, 프로그래머스를 처음으로 이용해봐서 계속 런타임이 났다.. 그 이유는 코드 전체를 쓰는 것이 아니라, 로직부분만 구현했으면 됐다는... :( 로컬에서는문제가 없는데 계속 런타임 오류가 나서 시간을 많이 소모했다. 문제의 난이도는 프로그래머스 0단계 수준 조금만 생각하면 충분히 누구나 풀 수 있는 문제들이었다. 나는 기존에 자주 사용하던 Java를 이용해 문제를 해결했고, 4문제의 문제가 출제되었는데 4문제를 다 해결했다. 문제는 다음과 같다. (..

스프링 부트의 테스트 코드(부제 : JUnit), 책: 스프링 부트와 AWS로 혼자 구현하는 웹 서비스

결국 테스트 코드를 작성하는 이유는, 기능이 잘 동작하는지 확인을 하기 위함이다. 테스트 코드는 내가 작성한 로직이나 기능들을 테스트 코드를 통해 잘 동작하는지 확인해보는 것이다. 테스트 코드 작성 전 개발 방식은 보통 1. 코드의 작성 2. 프로그램 실행 3. 테스트 도구를 통해 HTTP 요청 (Postman) = 브라우저를 통해 서버에 접속하고 테스트 대상 메소드를 동작시키는 요청 4. 요청 결과를 System.out.println()을 통해 눈으로 확인. 5. 결과가 이상하면 프로그램 실행을 중지하고 코드를 수정 이런 방식으로 많이 진행 되었는데, 테스트 코드를 작성하게 되면, 1. 코드를 작성 2. 테스트 코드의 작성 후 실행 3. 결과에 따른 동작(코드를 수정한다, 정상 작동하니 다음 로직을 개..

스프링/백엔드 2022.02.10