본문 바로가기

분류 전체보기66

[SpringBoot] 프로젝트에 Swagger 적용하기 오늘 글은 다음 목적을 바탕으로 작성되었다. SpringBoot 프로젝트의 문서화를 위해 Swagger를 적용한다. Swagger의 다양한 구성과 설정 방법에 대해 알아본다. Swagger를 통해 컨트롤러, 모델, 요청, 응답을 문서화한다. Swagger Swagger란 개발한 REST API를 편리하게 문서화 해주고, 이를 통해서 편리하게 API를 호출해보고 테스트할 수 있는 프로젝트이다. 기본 swagger2 프로젝트 뿐 아니라 다양한 구성을 가지고 있다. MVNRepository에 검색해보자. 본 글에서 다룰 주요 구성은 다음과 같다. SpringFox Swagger 2는 적용된 프로젝트의 응답, 요청, 예시 등의 정보를 JSON 쌍으로 만들어준다. SpringFox UI는 Swagger 2를 통해.. 2021. 9. 6.
[JPA] findAll, findAllBy, findAllByIn AOP로 성능 테스트해보기 오늘 회사원 친구와 JPA 이야기를 하다가, 다음과 같은 질문을 받았다. 회사 코드를 보니까, Repository에서 findAll을 한 다음 stream으로 가공하는 코드가 있었다. 그런데 그 코드는, findAllByXXX로 바꾸면 해결되는 간단한 필터 연산 코드였다. findAll vs findAllByXXX의 시간 효율 차이가 얼마나 날까? 듣고 보니 궁금하기도 하고, 이런 걸 테스트해보고 싶어서 직접 코드를 짜봤다. 본 글에서 수행하는 내용은 다음과 같다. AOP로 타이머를 만들어서 서비스에 씌우고, SpringBootTest로 테스트를 실행한다. findAll, findAllBy, findAllByIn 세 가지를 사용할 때 쿼리가 어떻게 나오나 비교해 본다. 각각의 쿼리에 대한 서비스 차원의 .. 2021. 9. 2.
[SpringBoot] application.properties를 yml로 교체하기 이 글은 다음 목적을 가지고 작성되었다. YAML이 무엇인지 알아본다. 스프링에서 YAML을 어떻게 활용할 수 있는지 알아본다. configuration 파일을 yml 파일로 교체해본다. YAML YAML은 YAML Ain't Markup Language 라는 의미로, 'YAML은 마크업 언어가 아니다'라는 재귀적인 의미를 가진다. 마크업 언어가 아니면 YAML은 무슨 언어라는 것일까? 일단 공식 웹페이지에 가보자. The Official YAML Web Site yaml.org 공식 웹페이지에서는 YAML을 다음과 같이 정의한다. YAML is a human friendly data serialization standard for all programming languages. 해석하자면 다음과 같다:.. 2021. 8. 31.
[SpringBoot] AOP를 활용하는 다양한 방법 https://kafcamus.tistory.com/39 [SpringBoot] 관점 지향 프로그래밍(AOP)이란? 이 글은 다음의 목적을 바탕으로 작성되었다. AOP가 무엇인지 알아본다. AOP를 활용하는 방법을 알아본다. AOP란? AOP는 관점 지향 프로그래밍(Aspect-Oriented Programming)의 약자이다. AOP는 횡단 관심사(cr kafcamus.tistory.com 저번 글에서는 다음과 같은 내용을 다루었다. AOP가 무엇인지 알아본다. Spring에서 AOP를 활용하는 방법을 알아본다. 이번 글에서는, 이에 더해 실제 AOP를 활용한 간단한 예시를 작성해보려고 한다. 커스텀 어노테이션을 구현한다. 어노테이션이 있는 메소드 실행 시, AOP를 실행한다. 결과적으로 로깅 로직을 .. 2021. 8. 30.
[SpringBoot] 관점 지향 프로그래밍(AOP)이란? 이 글은 다음의 목적을 바탕으로 작성되었다. AOP가 무엇인지 알아본다. Spring에서 AOP를 활용하는 방법을 알아본다. AOP란? AOP는 관점 지향 프로그래밍(Aspect-Oriented Programming)의 약자이다. AOP는 횡단 관심사(cross-cutting concern)의 분리를 허용해 모듈성을 증가시킨다. 이때 횡단 관심사가 무엇일까? 아래의 그림을 먼저 보자. 우리가 서버를 하나 만들고, 그 안에 여러 가지 로직들을 추가했다고 가정하자. 이때, 각각의 모듈마다 중복되는 로직이 존재한다. 예를 들자면, 로깅 로직 트랜잭션 시작/종료 로직 보안 인증 로직 설령 보안 인증을 해주는 클래스를 모듈로 분리하더라도, 각각의 서비스마다 해당 클래스를 호출하고 사용해줘야 한다. 그렇기 때문에,.. 2021. 8. 30.
생의 의미를 갈구하는 위대한 순간,『이반 일리치의 죽음』 삶의 의미란 무엇일까, 우리는 왜 살아갈까. 수많은 이들이 고민한 질문이지만, 동시에 아직도 해결하지 못한 질문이기도 하다. 개개의 삶에 그 이유가 있어서 아무도 남에게 설명할 수 없던 것인지, 혹은 그저 멀고 먼 어딘가에 그 이유가 있는 것인지. 우리의 세계는 이유를 알 틈도 없이 움직이기에 때때로 삶의 이유는 그 삶에 고요히 잠겨든다. "톨스토이는 정말 맹렬하게 삶에 집중했다고 한다. 자신에게 주어진 개인적/사회적/역사적 조건 속에서 누구보다 열심히 인생을 살아갔던 것이다. 러시아 혁명 사상가였던 게르친에게 보낸 한 편지에서 그는 "얼음이 깨지고 있다면 유일하게 살 수 있는 방법은 더 빠르게 걸어가는 것 뿐"이라고 말한 바 있다" 톨스토이, 『이반 일리치의 죽음』(창비) 128쪽의 작중 해설 인용. .. 2021. 8. 27.
반응형