본문 바로가기

전체 글223

[Spring] OpenApi 3.0 Swagger Springdoc 적용 Swagger란? Swagger 는 REST API를 설계, 빌드, 문서화 및 사용하는 데 도움이 될 수 있는 OpenAPI Specification(REST API에 대한 API 설명 형식)을 기반으로 구축된 오픈 소스. 문서화 및 간단한 테스트를 제공한다. 대표적인 라이브러리로 springfox , springdoc 이 있는데, springdoc을 사용할 예정이다. springdoc 선택 이유 더보기 springfox는 업데이트가 잘되고 있지 않음. 2020 7월 3.0.0 버전이 마지막 업데이트. springdoc은 2019년 7월에 처음 나와서 지속된 업데이트 중. springdoc은 webflux 지원 및 더 발전되고 사용하기 쉬움. springdoc은 그룹 간, api 간 정렬도 가능하고, 어.. 2022. 12. 4.
[Spring] JPA Auditing 사용법 JPA Auditing 서비스를 운영하다보면 DB에 데이터를 누가,언제 데이터를 생성했는지, 수정했는지를 저장해놓을 일이 있다. 이럴때마다, 엔티티별로 동일한 필드명을 달고, 데이터를 넣어주는 코드를 중복적으로 짜야하는 것을 없애기위해 Java ORM 기술인 JPA에서 제공해주는 기술이다. Auditing은 감사를 뜻하고, JPA Auditing은 해당 Entity를 지켜보다가 데이터를 조작할일이 생기면 자동으로 값을 넣어준다. javax에서도 제공하는 Auditing이 있지만(내부적으로 해당 기술 사용) @PrePersist @PostPersist @PreUpdate @PostUpdate Spring Data JPA에서 제공해주는 Auditing을 쓸 생각이다.(값도 자동으로 넣어주기 위해) Audit.. 2022. 8. 11.
[Spring] @Async 비동기 멀티스레드 사용법 수정사항 2022-08-27 async 사용 시 비동기 스레드 exception 처리 CompletableFuture 사용법 추가 Async 사용계기 현재 마이다스 AI 역검 백엔드팀에 들어오게 되었는데, 과제 중 원활한 검증작업을 위한 응시 데이터를 만드는 것을 담당하게 되었다. 실제로는 응시자 한명 당 다양한 게임마다 응시를 본 데이터가 날라오게 되고, 이를 각각 저장하게 되는데 응시를 실제로 보기때문에 하나의 패킷이 날라오는데 시간도 오래걸리게되어서 부담이 작다고 생각했지만, 나는 한번의 요청으로 응시자를 생성해준 후 각 게임마다 문제를 불러오고 문제에 대한 응시데이터도 만들어주고 해야한다. 거기다 검증을 위해 응시자를 천명~만명을 만든다고하면, 만명에 대한 것을 만들어줘야하기때문에 굉장히 느려졌다.. 2022. 6. 25.
[알고리즘 문제풀이] 백준 1938 통나무 옮기기 (JAVA코드) https://www.acmicpc.net/problem/1938 1938번: 통나무 옮기기 첫째 줄에 주어진 평지의 한 변의 길이 N이 주어진다. (4 ≤ N ≤ 50) 주어진다. 이어서 그 지형의 정보가 0, 1, B, E로 이루어진 문자열로 주어진다. 한 줄에 입력되는 문자열의 길이는 N이며 입력 문 www.acmicpc.net /** * bfs 구현 * * 1. 50*50 크기 * * 2. bfs를 나무의 중심으로 방문여부 체크하여 진행 * 2-1) bfs엔 나무의 중심과 가로 세로 여부 확인. * * 3. 각 조건별로 모듈화해서 진행 예정 * * 4. 최종 목적지 도착 최소 동작 회수 출력 * */ import java.util.*; import java.io.*; public class Mai.. 2022. 4. 27.
[알고리즘 문제풀이] 백준 1726 로봇 (JAVA코드) https://www.acmicpc.net/problem/1726 1726번: 로봇 많은 공장에서 로봇이 이용되고 있다. 우리 월드 공장의 로봇은 바라보는 방향으로 궤도를 따라 움직이며, 움직이는 방향은 동, 서, 남, 북 가운데 하나이다. 로봇의 이동을 제어하는 명령어는 www.acmicpc.net /** * 1. 100*100 맵 크기. * * 2. 로봇의 위치와 방향, 도착위치와 도착방향이 주어짐. * * 3. 몇번의 명령만에 도착할 수 있는지 체크하여 반환. * * --------------------------------------------- * * 1. bfs로 행할 수 있는 모든 명령 실행.(총 5개) * * 2. 해당좌표에 해당방향으로 방문했었는지 체크. * * 3. 방문안했었고 이동 가.. 2022. 4. 8.
[알고리즘 문제풀이] 프로그래머스 - 단어 변환 / JAVA(자바) https://programmers.co.kr/learn/courses/30/lessons/43163 코딩테스트 연습 - 단어 변환 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 programmers.co.kr /** 1. queue를 사용하여 변경가능한 단어 변경 2. 해당 단어를 썻는지 안썻는지 체크 3. 변경할때 변경회수 증가 4. target과 동일 시에 변경횟수 반환 **/ import java.util.*; class Solution { public class Word{ String word; int cnt; pub.. 2022. 4. 7.