ELB - Elastic Load Balancer
·
Cloud/AWS
배포가 된 프로젝트에 Swagger를 적용하기 위해 ELB를 통해 스웨거 경로의 요청을 서버로 전달해야했다. 로드밸런서에 대해서는 대략적으로 알고 있었지만 명확하게 적용해본적이 없었기 때문에 이번 기회에 공부하고 적용해보기로 했다.(사실 확인해 보니 ELB 적용이 안 돼 있었다는 사실....) 1. 개념ELB란 다수의 애플리케이션 트래픽을 여러 대상에게 자동으로 분산시켜 안정적인 AWS 환경을 구축하도록 돕는 시스템이다.2. 역할부하 분산 : 하나의 인스턴스에 작업이 몰려 정상적으로 작업을 수행하지 못하는 것을 방지한다.엔드 포인트 제공 : 스케일 아웃에 대한 엔드포인트를 제공하고 관리한다. 이를 이용해 트래픽을 하나의 경로로 받아 관리하고, 인스턴스 주소에 맞게 트래픽을 분산하여 처리하도록 한다.3. ..
Swagger 적용 (feat. Springdoc)
·
java/spring
항상 Swagger 적용이 된 것만 써보다가 이번에 기회가 돼서 공부를 하고 적용해 보았다. 😀0. 버전원래 기본적으로 적용되어 있는 springdoc 2.0.2 버전으로 했으나 버전 호환이 되지않았다.이번에 적용하는 프로젝트의 버전이 Spring boot 3.4.1이라서 2.8.1 버전을 적용했다.꼭 호환되는 버전을 확인하고 적용하자.... 아니면 나처럼 손해를 보는 경험을 하게 될 것이다. Gradle dependecies에 아래처럼 넣어주었다. 1. Swagger의 흐름swagger.yaml 에 설정된 경로로 요청을 시도한다.(default = /spring-ui/)server는 이에 대한 응답으로 springdocs에 내장된 정적파일들을 보내어 응답한다. (index.html, .css, ...
Bean Validation API
·
java/spring
Bean들의 유효성 검증을 위한 APIBean의 유효성 검증은 매우 중요하다. 각 Bean마다 유효성 검증 로직을 구현하기에는 비효율 적이기에 Bean Validation API를 통해서 간단하게 유효성 검증을 하도록 설계할 수 있다.즉, Domain-Model 제약 조건을(Constraints) 선언함으로써 Validation 로직을 여러 레이어에서 분리 시키려는 것이 Bean Validation API의 핵심 목표이다. Bean Validation API 유효성 검증 관련 메커니즘아래의 구성요소를 따르면 보다 직관적으로 유효성 검증을 하는 것을 볼 수 있다. [제약 조건]Domain Model에 Contraint 어노테이션을 부여한다.해당 Constraint 에 명시된 유효성 검증 로직(isValid..
Parametric Search
·
알고리즘
1. 정의조건을 만족한는 최소/최댓값을 구하는 문제(최적화 문제)를 결정문제로 ****변환하여 이분탐색을 수행하는 탐색법 2. 적용하기 전 확인해야 할 것최적화 문제를 결정 문제로 바꿀 수 있는지 확인하기최적화 문제 : 여러가지 경우의 수 중 최적의 해를 찾는 문제, 여러 경우의 수가 존재결정 문제 : 예/아니오 두 가지의 결정만이 있는 문제ex어떤문제에서 최대가 되는 x를 구하고자 한다. y이상일 때 문제가 해결되는 지 알고 싶다. ⇒ 최대가 되는 x값을 구하는 문제(최적화 문제)를 y이상일 때 되는지 안 되는지(결정문제) 로 변경이 결정 문제로 얻어낸 함수가 감소 혹은 증가 함수인지 따져봐야한다.ex최소 혹은 최대라는 얘기가 있는 경우범위가 무지막지하게 큰 경우시간 복잡도에서 값 하나를 로그로 어떻게..
Gradle 파일 뜯어보기
·
java/build
1. gradle-wrapper.properties 쓰임새Gradle Wrapper의 동작방식을 설정하는 파일Gradle Wrapper란 개발자들인 특정 gradle 버전으로 고정하여 동일한 환경에서 작업할 수 있도록 돕는다. 쓰임 예시distributionBase=GRADLE_USER_HOMEdistributionPath=wrapper/distsdistributionUrl=https\\://services.gradle.org/distributions/gradle-8.11.1-bin.zipnetworkTimeout=10000validateDistributionUrl=true/zipStoreBase=GRADLE_USER_HOMEzipStorePath=wrapper/distsdistributionBase=G..
git 레포 초기설정 파일 뜯어보기
·
git
그 동안 여러번 git을 쓰면서 제대로 뜯어보질 못한 것 같아서 이렇게 조금씩이나마 뜯어보는 시간을 가져보았다.  1. .gitattributes쓰임새이 설정은 다양한 운영체제에서 파일 호환성을 보장하고, Git이 파일을 적절히 처리하도록 돕는 역할을 한다.용어 설명text : text 파일로 취급하겠다는 뜻eol(End Of Line) : 줄바꿈을 뜻하는 단어줄바꿈 형식LF(Line Feed) : 제어 문자로 표현 시 “\n” 를 뜻한다. 주로 Linux/Mac 에서 쓰이는 방식이다.CRLF(Carriage Return Line Feed) : 제어 문자로 표현 시 “/r”을 뜻한다. 주로 window에서 쓰인다. 쓰임 예시/gradlew text eol=lf*.bat text eol=crlf*.jar ..
[JSCODE] 면접 스터디 회고
·
회고
5주간에 걸친 JSCODE 면접 스터디가 끝이 났다. 처음엔 멘토같은 형의 추천으로 별 생각없이 DB에 대한 확실한 기반이 부족하여 DB에 대해 공부하기 위해 신청했던 스터디였지만 끝나고 보니 남은게 정말 많았던 스터디 였다. 잘했던 점DB 지식의 체계적인 확립스터디를 통해 기본적인 DB 지식부터 심화된 개념까지 공부할 수 있었다. 멘토님의 조언으로 실무에서 활용할 수 있는 팁과 추가 학습 자료를 접할 수 있어 큰 도움이 되었다.다양한 개발자들과의 교류스터디원들과의 교류를 통해 새로운 공부 방법을 탐색하고, 서로 자극을 주고받으면서 학습에 대한 확실한 동기부여가 될 수 있게끔 되었다. 또한 나 역시도 훗날 다른 개발자들에게 보다 더 나은 정보를 공유하고 싶은 좋은 경험을 가졌다.면접 준비 경험의 내재화다..
이상 현상과 정규화
·
DB
이상현상 (Anomaly)좋은 관계형 데이터 베이스를 설계하는 목적 중 하나가 정보의 이상현상이 생기지 않도록 고려해 설계하는 것이다.이상현상이란 DB 설계할 때 잘못 설계하여  데이터를 삽입, 삭제, 수정할 때 논리적으로 생기는 오류를 말한다.이러한 이상현상에는 삽입이상, 삭제이상, 수정이상 이렇게 세 개가 있다.아래는 잘못된 설계로 만들어진 테이블의 예시이다.삽입이상삽입 이상이란 데이터를 삽입할 때 의도치 않은 값이 삽입되는 논리적 오류를 말한다.예를 들어 '이상철'이라는 개인정보만 입력하고 싶은데, 강의명이 null값으로 들어가게 되는 오류가 발생한다. 갱신이상갱신 이상이란 중복된 데이터를 수정 중 일부 데이터만 수정이되는 논리적 오류를 말한다.예를 들어 '김현수'의 나이를 22로 바꾸고 싶은데, ..