[TIL] Docker란? | FeignClient DIP | Gateway FeignClient 순환참조
·
TIL
8/12 진행사항✅ 알고리즘 2문제✅ 프로젝트 관리 심화 강의✅ 과제 해설 강의 듣기 + 피드백 반영  Docker란? 애플리케이션을 쉽게 만들고 테스트하고 배포할 수 있게 도와주는 소프트웨어 플랫폼으로애플리케이션을 컨테이너라는 가볍고 이식성 있는 패키지로 실행할 수 있다. 특징컨테이너화 - 하나의 패키지로 묶어 어디서든 실행 가능경량 - 운영체제의 커널을 공유하므로 가상 머신보다 훨씬 빠름이식성 - 어디서든 동일하게 동작확장성 - 여러 개의 컨테이너를 효율적으로 관리하고 쉽게 확장주요 키워드이미지 - 애플리케이션과 모든 실행에 필요한 파일을 포함한 읽기 전용 템플릿, 정적인 템플릿컨테이너 - 이미지를 실행하여 동작하는 애플리케이션 인스턴스, 동적인 환경Dockerfile - 이미지를 생성하기 위한 명령..
[TIL] Spring Boot 로컬과 서버 환경 분리 | 정적 팩토리 메서드
·
TIL
8/9 진행사항✅ 알고르즘 2문제✅ 챕터1 과제수행  로컬과 서버 환경 분리  로컬&개발 환경과 운영환경을 분리하여 local 주소와 배포 주소로 접근하는 것을 목표로 한다. application.ymlspring: profiles: default: dev application: name: product-service jpa: properties: hibernate: show_sql: true format_sql: true use_sql_comments: true highlight_sql: trueserver: port: 19093management: tracing: sampling: probability:..
[TIL] Spring Boot 프로젝트에 캐싱 적용하기
·
TIL
8/9 진행사항✅ 알고리즘 5문제✅ 인메모리 저장소 및 캐싱 전략 1-5 ~ 2-4✅ 챕터1 과제 캐싱 기능 구현  Spring Boot 프로젝트에 캐싱 적용하기 1. build.gradledependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' // 레디스 추가 implementation 'org.springframework.boot:spring-boot-starter-data-redis' implementation 'org.springframework.boot:spring-boot-starter-web' compileOnly 'org.projectlombok:lombok' ..
[TIL] 양방향 연관관계 매핑 | Feign client Error Decoder
·
TIL
8/7 진행사항✅ 알고리즘 2문제✅ 인메모리 강의 1-4✅ 챕터1 과제 - 기본 api 구성하기 오늘은 강의보다 과제에 더 시간을 많이 쓴 날이다.강의 집중이 잘 안 되어 과제로 눈 돌렸더니 과제에서 빠져나올 수 없었다....🤯 양방향 연관관계 매핑 상품과 주문의 관계는 다대다 관계다.(한 개의 상품이 여러개의 주문에 들어갈 수 있고, 한 개의 주문도 여러개의 상품에 포함될 수 있다.)이때 중간테이블인 주문상품 테이블을 만들면 상품:주문상품 = 1:N주문:주문상품 = 1:N관계로 정리된다. 주문상품 엔티티@NoArgsConstructor@AllArgsConstructor(access = AccessLevel.PROTECTED)@Builder(access = AccessLevel.PRIVATE)@Gett..
[TIL] Zipkin이란? | Redis란?
·
TIL
8/6 진행사항✅ 알고리즘 2문제✅ MSA 프로젝트 실습✅ 인메모리 강의 1-1 ~ 1-3 Zipkin이란? 트레이스 데이터를 수집하고 시각화하는 분산 추적 시스템 도커를 사용하여 Zipkin 서버 실행docker run -d -p 9411:9411 openzipkin/zipkin application.yml에 Zipkin 서버 설정 추가management: zipkin: tracing: endpoint: "http://localhost:9411/api/v2/spans" tracing: sampling: probability: 1.0  Zipkin 대시보드 접속 (http://localhost:9411 ) 서비스 호출을 시각화해서 볼 수 있다.Redis란 Redis는 가장..
[TIL] QueryDsl 사용방법
·
TIL
8/5 진행사항✅ 알고리즘 2문제✅ MSA 강의 1-12 QueryDsl 사용방법 dependencies { // queryDSL implementation "com.querydsl:querydsl-jpa:${querydslVersion}:jakarta" annotationProcessor "com.querydsl:querydsl-apt:${querydslVersion}:jakarta" annotationProcessor "jakarta.annotation:jakarta.annotation-api" annotationProcessor "jakarta.persistence:jakarta.persistence-api" } def querydslSrcDir='src/main/generated'clean{ d..
[TIL] 인증과 인가 | 컨피그 서버 (Spring Cloud Config)
·
TIL
8/2 진행사항✅ 알고리즘 3문제✅ MSA강의 1-8 ~ 1-11 MSA 강의에서 JWT인증 실습이 진행되었는데 내용이 좀 부족한 거 같아스프링 강의의 인증과 인가 내용을 정리해보려 한다. 인증과 인가 인증(Authentication)-해당 유저가 실제 유저인지 확인 및 인증하는 행위ex) 로그인 인가(Authorization)-해당 유저가 특정 리소스에 접근이 가능한지 허가를 확인하는 개념ex) 회원/비회원 여부에 따른 권한, 관리자페이지-관리자 권한 웹 애플리케이션 인증의 특수성 1. 서버-클라이언트 구조, 실제로 두 요소가 아주 멀리 떨어져 있다.2. HTTP 프로토콜을 이용하여 통신한다.HTTP는 비연결성 무상태로 이루어진다.비연결성(Connectionless)란? 서버와 클라이언트가 연결되어 있..
[TIL] Java 형변환 | Integer.parseInt와 Integer.valueOf의 차이 | Math.sqrt()와 Math.pow() | 클라이언트 사이드 로드 밸런싱 | 서킷 브레이커 (Resilience4j) | Spring Cloud Gateway
·
TIL
8/1 진행사항✅ 알고리즘 4문제✅ MSA 강의 1-4 ~ 1-7  오늘 코드카타에서 형변환과 반환타입을 잘 확인해야 되는 문제들을 풀었다.(풀었던 문제도 그냥 초기화해서 다시 풀어보고있다.)프로그래머스 문제를 풀다 보면 형변환 때문에 실패를 받는 경우가 종종 있다.그래서 아래와 같이 정리한다. Java 형변환 자바에서는 작은 타입에서 큰 타입으로의 자동 형 변환이 이루어진다.public class Main { public static void main(String[] args) { int x = 1; long num = x; // int 값이 long 타입으로 자동 형 변환됨 System.out.println(num); // 1 }}int ..
[TIL] MSA란? | Spring Cloud란?
·
TIL
오늘의 중요 일정 1:1 면담 후기 다양한 질문들이 오갔는데si 개발에 같이 공감해 주시고 회사생활 관련 조언도 해주셨다.TIL은 시행착오 위주로, 어떤 이슈가 발생했고 어떻게 해결해 나갔는지 적는 것이 메리트가 된다고 한다!알고리즘 문제는 최대한 많이 풀어보기 ㅎ!스프링 심화 강의가 남아있지만 내배캠 일정에 맞게 MSA 먼저 듣기로 결정했다.  MSA란? MSA는  프로젝트때 잠깐 경험해 본 적이 있다.직접 설계를 해 본 것은 아니라 MSA 경험이 있어요!라고 자신 있게 말할 수 있진 않다.이미 설계된 곳에서 개발을 해 본 정도? 내가 아는 MSA 개념은 서비스별로 프로젝트가 분리되어 있다! 정도 알고 있다이제 배운 내용을 정리해 보자. MSA란 Microservices Architecture로 하나의..
[TIL] @Data vs @Getter, @Setter | Building Result란? | CreatedAt UpdatedAt null 해결
·
TIL
오늘의 목표 - My Select Shop 과제 완료하기 과제가 하루 밀려 여유가 더 생겼지만 오늘 안에 꼭! 끝내고 싶어서 완성하였다. 과제를 하면서 궁금했던 부분에 대해 정리해보려 한다.   @Data대신 @Getter @Setter를 쓰는 이유  강의 자료를 보면 모든 Dto가 @Getter와 @Setter를 사용한다. 여기서 의문이 들었던 점@Data를 사용하면 @Getter와 @Setter의 기능을 모두 사용하면서 코드가 간결해지는데 왜 @Data를 사용하지 않는 걸까? 찾아보니, @Data는 @Getter @Setter 뿐만 아니라 @EqualsAndHashCode와 @RequiredArgsConstructor @ToString을 포함하고 있어서 지양하는 편이 좋다고 한다. 많은 기능을 한 번..