전체 글
무지했던 지난 날에 대한 속죄의 기록
-
Spring Retry 에 대해 학습하고, 이를 적용한 코드를 통한 깊이 더하기 ⛅ Intro최근 각광받는 MSA 구조, 분산 시스템 구조에서 서버간 네트워크 통신은 매우 중요하다. 특히 네트워크를 통한 API 호출은 언제 어떻게 실패할지 예측하기 어렵기 때문에 이를 감시할 수 있는 모니터링 기술도 매우 중요하게 평가받고 있다. Datadog 같은 기업의 클라우드 환경 솔루션도 이런 분산 시스템 모니터링과 실시간 오류, 성능 분석을 위한 사용자의 니즈를 기반으로 급속하게 성장하고 있는 중이다. 이런 분산 시스템에서 서버와 서버간 API 호출 실패에 대한 재시도는 매우 중요한 행위이다. 1번의 네트워크 호출 실패로 서비스의 비지니스 로직을 모두 실패처리하거나 fallback 처리하는 것은 몇 번 다시 ..
[Java] Spring RetrySpring Retry 에 대해 학습하고, 이를 적용한 코드를 통한 깊이 더하기 ⛅ Intro최근 각광받는 MSA 구조, 분산 시스템 구조에서 서버간 네트워크 통신은 매우 중요하다. 특히 네트워크를 통한 API 호출은 언제 어떻게 실패할지 예측하기 어렵기 때문에 이를 감시할 수 있는 모니터링 기술도 매우 중요하게 평가받고 있다. Datadog 같은 기업의 클라우드 환경 솔루션도 이런 분산 시스템 모니터링과 실시간 오류, 성능 분석을 위한 사용자의 니즈를 기반으로 급속하게 성장하고 있는 중이다. 이런 분산 시스템에서 서버와 서버간 API 호출 실패에 대한 재시도는 매우 중요한 행위이다. 1번의 네트워크 호출 실패로 서비스의 비지니스 로직을 모두 실패처리하거나 fallback 처리하는 것은 몇 번 다시 ..
2024.02.21 -
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ⛅️ Intro 프로그래머스에 비트 연산을 사용해야 하는 알고리즘 문제를 경험했다. 평소에 진수 변환만 사용하다가 더 다양한 풀이에 접목시키고자 학습한 내용을 정리하고 공유한다! Java 에서의 진수 변환 비트 연산에 대해 설명하기 이전에 진수를 변환하는 방법에 대해 먼저 공유한다. 1. Integer.toString(i, radix) Integer.toString(7, 2); [Result] : 111 Integer.toString() 메서드의 첫번째 파라미터인 i에 진수변환할 수를 입력하고, 두번째 파라미..
[Java] 비트 연산프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ⛅️ Intro 프로그래머스에 비트 연산을 사용해야 하는 알고리즘 문제를 경험했다. 평소에 진수 변환만 사용하다가 더 다양한 풀이에 접목시키고자 학습한 내용을 정리하고 공유한다! Java 에서의 진수 변환 비트 연산에 대해 설명하기 이전에 진수를 변환하는 방법에 대해 먼저 공유한다. 1. Integer.toString(i, radix) Integer.toString(7, 2); [Result] : 111 Integer.toString() 메서드의 첫번째 파라미터인 i에 진수변환할 수를 입력하고, 두번째 파라미..
2024.02.20 -
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 42746, 가장 큰수 🔥 난이도 : LEVEL 2 📚 프로세스 요구사항 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210입니다. 0 또는 양의 정수가 담긴 배열 numbers가 매개변수로 주어질 때, 순서를 재배치하여 만들 수 있는 가장 큰 수를 문자열로 바꾸어 return 하도록 solution 함..
[Java][프로그래머스] 42746번, 가장 큰 수프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 42746, 가장 큰수 🔥 난이도 : LEVEL 2 📚 프로세스 요구사항 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210입니다. 0 또는 양의 정수가 담긴 배열 numbers가 매개변수로 주어질 때, 순서를 재배치하여 만들 수 있는 가장 큰 수를 문자열로 바꾸어 return 하도록 solution 함..
2024.02.20 -
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 118667, 두 큐 합 같게 만들기 📌 난이도 : LEVEL 2 📚 프로세스 요구사항 길이가 같은 두 개의 큐를 나타내는 정수 배열 queue1, queue2가 매개변수로 주어집니다. 각 큐의 원소 합을 같게 만들기 위해 필요한 작업의 최소 횟수를 return 하도록 solution 함수를 완성해주세요. 단, 어떤 방법으로도 각 큐의 원소 합을 같게 만들 수 없는 경우, -1을 return 해주세요. 제한사항 1 ≤ queue1의 길이 = queue2의 길이 ≤ 300,000 1 ≤ queue1의 원소, q..
[Java][프로그래머스] 118667번, 두 큐 합 같게 만들기프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 118667, 두 큐 합 같게 만들기 📌 난이도 : LEVEL 2 📚 프로세스 요구사항 길이가 같은 두 개의 큐를 나타내는 정수 배열 queue1, queue2가 매개변수로 주어집니다. 각 큐의 원소 합을 같게 만들기 위해 필요한 작업의 최소 횟수를 return 하도록 solution 함수를 완성해주세요. 단, 어떤 방법으로도 각 큐의 원소 합을 같게 만들 수 없는 경우, -1을 return 해주세요. 제한사항 1 ≤ queue1의 길이 = queue2의 길이 ≤ 300,000 1 ≤ queue1의 원소, q..
2024.02.19 -
Spock으로 테스트코드를 작성하며 경험한 것들을 기록한다.📖 ⛅️ Intro TDD 가 중요 역량이 되는만큼 테스트 코드 작성은 매우 중요하다. 그렇기에 테스트 코드를 생활하는 습관을 들이는 도중, 주변에서 "JUnit 말고 Spock 도 사용해보세요 !! "라는 말과 권유는 많이 들었지만 할게 너무 나도 많아서 미뤄왔다. 그런데 막상 테스트를 작성하다 보니 생각보다 간단했고 아직 Spock을 잘 모르시는 분과 함께 경험을 나누면 좋겠다고 생각해서 이 글을 정리한다. 이제 막 시작하는 단계이다 보니 부족한 점이 많지만.. Spring Boot 에서 Spock 로 테스트 Spring Boot 에서 Spock 를 사용하는 방법에 대해 설명하기 전에 Spock가 뭔지, 사용법은 무엇인지에 대해 알아보자. S..
[Spring] Spock으로 테스트 코드를!Spock으로 테스트코드를 작성하며 경험한 것들을 기록한다.📖 ⛅️ Intro TDD 가 중요 역량이 되는만큼 테스트 코드 작성은 매우 중요하다. 그렇기에 테스트 코드를 생활하는 습관을 들이는 도중, 주변에서 "JUnit 말고 Spock 도 사용해보세요 !! "라는 말과 권유는 많이 들었지만 할게 너무 나도 많아서 미뤄왔다. 그런데 막상 테스트를 작성하다 보니 생각보다 간단했고 아직 Spock을 잘 모르시는 분과 함께 경험을 나누면 좋겠다고 생각해서 이 글을 정리한다. 이제 막 시작하는 단계이다 보니 부족한 점이 많지만.. Spring Boot 에서 Spock 로 테스트 Spring Boot 에서 Spock 를 사용하는 방법에 대해 설명하기 전에 Spock가 뭔지, 사용법은 무엇인지에 대해 알아보자. S..
2024.02.18 -
평소에 자주쓰는 어노테이션, 헷갈리는 개념들 여기서 정리하고 넘어간다. ⛅️ Intro개발을 진행하며 @NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructor 이 세개의 어노테이션을 종종 사용했다. 비슷한 맥락의 코드에 주로 사용하긴 했지만 가끔 헷갈리는 경우가 발생한다. 이게 뭐지 .. 이게 뭐였지 하며 매번 구글링을 하는 나를 위해 정리하고 넘어간다. @NoArgsConstructor@RequiredArgsConstructor@AllArgsConstructor 먼저 설명하자면 Spring과 Lombok을 사용한다면 꼭 알고 있어야 하는 생성자 관련 어노테이션들이다. 일단 3형제 뒤에 붙은 Constructor라는 단어로부터 유추할 수 있듯..
[Spring] @NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructor 이것들이 뭔데평소에 자주쓰는 어노테이션, 헷갈리는 개념들 여기서 정리하고 넘어간다. ⛅️ Intro개발을 진행하며 @NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructor 이 세개의 어노테이션을 종종 사용했다. 비슷한 맥락의 코드에 주로 사용하긴 했지만 가끔 헷갈리는 경우가 발생한다. 이게 뭐지 .. 이게 뭐였지 하며 매번 구글링을 하는 나를 위해 정리하고 넘어간다. @NoArgsConstructor@RequiredArgsConstructor@AllArgsConstructor 먼저 설명하자면 Spring과 Lombok을 사용한다면 꼭 알고 있어야 하는 생성자 관련 어노테이션들이다. 일단 3형제 뒤에 붙은 Constructor라는 단어로부터 유추할 수 있듯..
2024.02.18 -
게시판 서비스, SpringBoot 를 더한! ⛅️ Intro Spring에 대해 공부하고 더 깊은 이해를 경험하고 싶어 토이 프로젝트를 진행하기로 결심하고 직접 구현해봤다. 이러한 과정 속에서 배우고 느낀 것들을 공유하고 기록하고 싶어 글로 작성하기로 했다. 프로젝트의 흐름에 맞게 설명하고 첫 프로젝트이고 이 글을 읽는 Spring 입문자들을 위해 최대한 세세히 설명을 더한다. 📃 기능 설계 회원 - 로그인 - 회원가입 게시판 - 게시글/댓글 CRUD, Spring Security 를 사용하여 조회/수정/삭제에 대한 권한 체크 - Spring Data JPA + Querydsl 을 사용한 다양한 타입에 대한 검색 및 정렬 기능 (제목, 유저의 아이디 해시태그) - 게시글 & 해시태그 리스트 조회, 페이..
[SpringBoot & JPA] 게시판 직접 구현해보기 [1]게시판 서비스, SpringBoot 를 더한! ⛅️ Intro Spring에 대해 공부하고 더 깊은 이해를 경험하고 싶어 토이 프로젝트를 진행하기로 결심하고 직접 구현해봤다. 이러한 과정 속에서 배우고 느낀 것들을 공유하고 기록하고 싶어 글로 작성하기로 했다. 프로젝트의 흐름에 맞게 설명하고 첫 프로젝트이고 이 글을 읽는 Spring 입문자들을 위해 최대한 세세히 설명을 더한다. 📃 기능 설계 회원 - 로그인 - 회원가입 게시판 - 게시글/댓글 CRUD, Spring Security 를 사용하여 조회/수정/삭제에 대한 권한 체크 - Spring Data JPA + Querydsl 을 사용한 다양한 타입에 대한 검색 및 정렬 기능 (제목, 유저의 아이디 해시태그) - 게시글 & 해시태그 리스트 조회, 페이..
2024.02.15 -
이전까지 Docker에 대해 학습한 내용으로 멀티 컨테이너 환경을 구현해본다 📖 [Docker] Docker란 ? Docker 에 대해 학습하고 직접 실행하며 배우고 느낀 것들에 대해 정리하고 공유하고자 글을 작성한다 📖 Docker 컨테이너를 사용하여 응용프로그램을 더 쉽게 만들고, 배포하고 실행할 수 있도록 seung-seok.tistory.com 이전에 작성한 내용이니 이 글을 읽기 전에 위의 링크의 글을 먼저 읽어보는 걸 권장한다. 다중 컨테이너 구현하기 mariadb 와 redis 컨테이너를 한번에 관리하는 것을 목표로 구현을 진행해 보겠다. 그 전에 먼저 Spring 에서 개발환경과 운영환경을 분리해서 설정해 주었다. 이는 실제로 스프링 부트를 도커에 배포해서 사용할 때와 같은 다양한 환경에 ..
[Docker] 다중 컨테이너 한번에 구현하기이전까지 Docker에 대해 학습한 내용으로 멀티 컨테이너 환경을 구현해본다 📖 [Docker] Docker란 ? Docker 에 대해 학습하고 직접 실행하며 배우고 느낀 것들에 대해 정리하고 공유하고자 글을 작성한다 📖 Docker 컨테이너를 사용하여 응용프로그램을 더 쉽게 만들고, 배포하고 실행할 수 있도록 seung-seok.tistory.com 이전에 작성한 내용이니 이 글을 읽기 전에 위의 링크의 글을 먼저 읽어보는 걸 권장한다. 다중 컨테이너 구현하기 mariadb 와 redis 컨테이너를 한번에 관리하는 것을 목표로 구현을 진행해 보겠다. 그 전에 먼저 Spring 에서 개발환경과 운영환경을 분리해서 설정해 주었다. 이는 실제로 스프링 부트를 도커에 배포해서 사용할 때와 같은 다양한 환경에 ..
2024.02.12