전체 글

이전 노션 블로그의 스프링의 application.properties 설정 (+ ddl 설정, DB url/port) (2021.07.26)로부터 마이그레이션된 글입니다. application.properties spring.jpa.hibernate.ddl-auto=update spring.jpa.generate-ddl=false spring.datasource.url=jdbc:mariadb//{PATH}/{DATABASE} spring.datasource.username={USERNAME} spring.datasource.driver-class-name=org.mariadb.jdbc.Driver jpa ddl 설정 ddl-auto update : 기존의 스키마를 유지하며 JPA에 의해 변경된 부분만 추..
이전 노션 블로그의 [MySQL] DB Authentication 문제 | ERROR 1698 | Access denied for user 'root' (2021.07.26)로부터 마이그레이션된 글입니다. MariaDB 10.0 버전부터는 보안 방식이 'Unix Socket' 방식이 적용된다. mysql -u root -p password spring datasource 접속 따라서 이 두 가지를 위해서는 plugin 을 바꿔야한다. 만약 초기 접속이라면, 비밀번호도 설정해줘야한다. $ sudo mysql mysql> use mysql; mysql> CREATE USER 'user'@'localhost' IDENTIFIED BY 'password'; mysql> CREATE USER 'user'@'%' ..
이전 노션 블로그의 단위 테스트와 통합 테스트 (2023.03.13)로부터 마이그레이션된 글입니다. 단위 테스트 vs 통합 테스트 단위 테스트(Unit Test)는 하나의 모듈을 기준으로 독립적으로 진행되는 가장 작은 단위의 테스트이다. 여기서 모듈은 애플리케이션에서 작동하는 하나의 기능 또는 메소드로 이해할 수 있다. 예를 들어 웹에서 로그인 메소드에 대한 독립적인 테스트가 1개의 단위테스트가 될 수 있다. 즉, 단위 테스트는 “어떤 기능이 실행되면 어떤 결과가 나온다" 정도로 테스트를 진행한다. 통합 테스트(Integration Test)는 모듈을 통합하는 과정에서 모듈 간의 호환성을 확인하기 위해 수행되는 테스트이다. 일반적으로 애플리케이션은 여러 개의 모듈들로 구성이 되고, 모듈들끼리 상호작용한다..
이전 노션 블로그의 LoRa Network performance enhancement (2023.03.26)로부터 마이그레이션된 글입니다. Introduce This is a post about my project from K-SW Purdue program. The project was Power Efficient Long Range Drone Networking System for UAV Dection , the solution to make a drone detect other drones. This is a abstract section written in a paper. Abstract—In recent years, technological advancements in Unmanned Aeria..
이전 노션 블로그의 소나큐브와 Jacoco로 코드를 깨끗하게 유지하기 (2023.09.07)로부터 마이그레이션된 글입니다. ⚙️ Setup EC2 서버에 SonarQube 설치 및 설정 1. 메모리 증가를 위한 Swap 설정 파일 생성 및 설치 touch ~/swapfile sudo fallocate -l 2G ~/swapfile sudo chmod 600 ~/swapfile sudo mkswap ~/swapfile sudo swapon ~/swapfile sudo yum install java-17-amazon-corretto-headless 아래 파일들을 열어서 가장 아래에 추가 /etc/fstab ~/swapfile swap swap defaults 0 0 /etc/sysctl.conf vm.max..
이전 노션 블로그의 Transaction 이란? (2023.08.11)로부터 마이그레이션된 글입니다. 저는 늘 Swagger의 자동화와 간단한 어노테이션을 통해 빠른 API 문서 배포만 해봤습니다. 빠르게 작업가능하다는 장점은 있었지만, 모든 요청을 Postman으로 테스트하는 과정에서 실수가 있을 수 밖에 없었고 Swagger의 자동 생성 문서가 친절한 편은 아니기에 읽는 사람마다 다르게 이해되는 경우가 있었습니다. 따라서 프론트에서 API를 연결하는 과정에서 실수가 자주 발생하거나, 오류가 발생하더라도 저에게 직접 물어보는 경우가 많았습니다. API 문서를 작성한 의의가 사라져버리는 일이 많았습니다… 😔 이번 리뷰메이트 프로젝트에서는 제한된 시간 내에 FE와 AI 모두가 사용할 서버를 만들어야 하므로..
이전 노션 블로그의 Swagger에서 MultipartFile과 DTO 한 번에 받는 @RequestPart 요청을 실행할 수 있도록 만들기 (2023.08.29)로부터 마이그레이션된 글입니다. 번거롭게 요청을 요청할 필요 없이 하나의 요청에서 파일과 데이터를 전송할 수 있도록 컨트롤러를 힘들게 구현했더니, 프론트에서 사용할 때 요청이 발생하고 Swagger에서 제대로 동작하지 않았다. 본 포스팅은 노력이 헛되지 않도록 문제를 하나씩 고쳐나간 기록들이다. 1. Request body의 Content-type이 올바르지 않음 문제 상황 MultipartFile와 DTO를 한 번에 받을 수 있는 요청을 만들때, 다른 여타 요청들처럼 @PostMapping에 URL만 설정하면 Swagger의 Request b..
이전 노션 블로그의 enum 필드를 기준으로 정렬하기 (2022.02.20)로부터 마이그레이션된 글입니다. public enum Tier { BRONZE, // 0 SILVER, // 1 GOLD, // 2 DIAMOND // 3 } @Entity public class User { @Enumerated(EnumType.ORDINAL) // Default Setting private Tier tier; } enum의 ordinal 값은 0부터 시작 BRONZE : 0 SILVER : 1 ... Default Setting인 @Enumerated(EnumType.ORDINAL) 은 enum의 ordinal 값을 DB에 저장 ⇒ Integer 필드처럼 오름차순, 내림차순 정렬하면 됨.
이전 Velog의 외부 서비스 요청 결과에 따라 리뷰 업로드 요청 결과가 달라지는 강결합 구조를 개선해보자. (2023.11.02) 로부터 마이그레이션된 글입니다. 동기 리뷰는 본 프로젝트의 핵심으로서, 최대한 많은 리뷰를 입력받고 이를 분석해 가치있는 정보를 제공하고 있습니다. 이러한 리뷰의 업로드는 다음과 같은 과정을 통해 진행됩니다. AWS S3를 통한 사진 업로드와 AI 리뷰 분석 모델을 통한 리뷰 분석 요청이라는 2개의 외부 서비스를 거친 후 ㄹㅣ뷰 데이터가 DB에 저장됩니다. 즉, 동기로 작동하고 하나의 트랜잭션으로 묶이기 때문에, 클라이언트가 리뷰를 업로드할 때 세 가지 과정이 모두 완료되는 긴 시간을 기다려야 하고 외부 서비스 중 하나라도 실패하면 리뷰 업로드가 실패하는 강결합 구조이다. ..
이전 Velog의 대용량 데이터베이스의 조회 성능을 개선해보자 (2) : 인덱스 튜닝 (2023.11.12) 로부터 마이그레이션된 글입니다. Github main repo / Github server repo 동기 1편의 카테고리별 리뷰 조회를 시작으로 500ms가 넘어가는 요청들을 위주로 Cardinality/Selectivity를 고려하여 인덱스를 생성했다. 하지만 1편까지는 진짜 대용량 데이터베이스는 아니였다. 2편부터 여기어때컴퍼니 벤처 프로젝트인만큼 여기어때 홍보자료에 있는 데이터 규모에서 성능을 측정해보고 필요하다면 개선까지 진행해보자. 기존 테스트 데이터 스케일 여행상품: 30 (각 카테고리 10개씩, 숙소, 식당, 렌터카) 예약: 540,000 (카테고리 별 180,000) - 여행상품 마..
sckwon770
sckwon770