본문 바로가기

전체 글

(24)
spring boot 프로젝트 docker 빌드하고 실행하기 1. intellij에서 좌측 gradle 탭에서 clean을 클릭, 기존의 build 내역 삭제한다 2. 프로젝트 디렉터리에서 ./gradlew build 명령어를 실행, jar 파일을 빌드한다 3. (이건 지금은 안해도 됨) build/libs 디렉토리 아래의 *plain-jar 파일을 삭제 (근데 build.gralde 파일에 설정을 해서 더이상 생성되지 않는다) 4. docker build --build-arg JAR_FILE=build/libs/*.jar -t {태그 이름}. 명령어를 실행, docker image를 빌드한다 5. docker run {이미지 id} -p 6667:6667 -p 9092:9092 -p 443:443 명령어로, twitch irc, confluent bootstra..
LeetCode #2 Add Two Numbers 두 개의, 비어있지 않은 linked list들이 입력으로 주어지고, 각각의 리스트에는 음수가 아닌 정수가 담긴다. numbers들은, 역순으로 저장이 되어 있고, 각 노드는 하나의 숫자만을 저장하고 있다. 가장 큰 자릿수에 0은 오지 않는다 (단, 0 하나만 담긴 linked list는 가능하다) 저장된 숫자를 더하고, 이를 다시 linked list에 담아서 return 하는 문제 Example) Input: l1 = [2,4,3], l2 = [5,6,4] Output: [7,0,8] 2,4,3의 역순은 342가 되고, 5,6,4의 역순은 465 이므로, 둘을 합한 결과인 807을 다시 역순으로 linked list에 담아서 저장하면 된다. 제한사항: node의 값으로는 0~9만이 올 수 있으며, l..
Intellij에서 Git Merge하기 프로젝트의 git branch로 master에서 분리된 작업을 하다가, 작업을 마치고 다시 master branch로 분리되었던 작업을 통합하고 싶은 경우가 있다 (사실 그런 경우가 있는게 아니라 issue 설정하고 해결을 한다면 당연히 그렇게 해야지...) 그럴 때 git merge를 이용하면 되고 (사실 Rebase라는 방법도 있다), intellij에서 이를 할 수 있는 방법을 알아보자 intellij 우측 하단이다. 지금은 master branch에서 프로젝트 작업이 이뤄지고 있는 모습이다. 현재 나의 local branches에는, master와 create one-to-one-for-UoM 두개가 있다. 만약 후자의 branch에서 작업을 하다 master로 이를 통합하고 싶다면, 우선 che..
Spring Boot로 H2 console 연결하기 Spring Framework 5: Biginner to Guru 영상을 공부하며 정리하는 내용이다 Spring Boot를 사용하면서, in memory 방식의 데이터베이스인 H2 database를 사용하기 위한 설정법이다 우선 pom.xml에 의존성 주입을 해준다. 스프링부트의 장점이 알아서 어플리케이션과 호환되는 버전을 initilizer에서 지원해 주니 버전을 신경 쓰지 않아도 된다 다음으로, h2 console과의 연결을 위한 설정을 application.properties에서 해준다. yml 확장자로 하면, spring.datasource 부분이 중복 되는 걸 하지 않아도 될 것이다 저 설정 중에서 중요한 것은, datasource.url 부분과 username이다 밑의 사진에서 h2 conso..
Spring MVC란 SKPlanet Tacademy에서 제공하는 Spring Framework Basic 강의와, 스프링 철저 입문에서 제공한 내용을 정리한 글이다 MVC 패턴이란, Model View Controller의 architecture pattern으로, Business logic과 Presentation logic(사용자 interface)을 분리하고자 한다 (서로 독립적으로 동작하게 하여, 각자에게 영향 없이 수정 변경할 수 있다) Model: application의 정보(데이터, business logic 등)를 제공한다 View: 모델이 가진 데이터를 참조, 클라이언트에 반환할 응답 데이터를 생성 Controller: 모델과 View 사이의 상호작용 관리, request를 받아 모델과 뷰의 호출을 제어한다..
Idempotent Producer Udemy 강의를 들으며, 카프카 produce Acks에 대해 정리한 글이다 내용 정리 중 O'RELLY의 카프카 핵심 가이드에 수록된 내용도 참고를 하였다 Producer는 네트워크 에러 등의 이유로 동일한 메세지가 복사되어 두번 전송되는 일이 발생하곤 한다 본디 Producer에서 메세지를 전송하고, kafka broker가 메세지를 commit했다는 사실을 acknowledge 할 수 있어야 하나, 네트워크의 이유로 ack가 Producer에게 도달하지 못한다면 Producer는 메세지를 retry하게 된다 그러나 broker의 입장에서는 이미 한번 commit한 데이터와 동일한 메세지를 중복해서 commit하게 된다 문제는 Producer의 입장에서는 메세지는 단 한번만 전송이 된 것으로 간주한..
Producer Acks Udemy 강의를 들으며, 카프카 produce Acks에 대해 정리한 글이다 acks 매개변수는 전송된 레코드(ProducerRecord 객체)를 수신하는 partition replica의 수를 제어한다. 메세지의 유실 가능성에 영향을 주며, 3가지 중 하나의 값을 설정할 수 있다 acks 매개변수 1. acks = 0 (no acks) 프로듀서가 broker로부터 응답을 요구하지 않는다. 메세지가 유실 되어도 괜찮은 상황에 사용되며, broker가 offline 상태가 되거나 예외 발생 시 roducer에서는 이를 알 수 없고, 데이터를 유실하게 된다. Metrics 혹은 Log collection과 같이 높은 처리량이 필요할 때 사용된다 2. acks = 1(default setting) 리더 re..
환영합니다! #1 글을 작성해 보세요. 쁘룸쁘룸님의 회원 가입을 진심으로 축하합니다. 이 글은 비공개로 작성돼 있습니다. '편집'으로 내용을 바꾸시거나, 삭제 후 '새 글을 작성'하셔도 됩니다. 블로그를 간단하게 소개하는 글로 편집해보는 것도 좋겠네요. #2 다양한 스킨이 있어요. 티스토리에 있는 다양한 '스킨'도 살펴 보세요. 블로그나 사이트를 사용하는 목적에 맞게 스킨을 고를 수 있습니다. 어떤 이야기를 주로 하실 건가요? 잘 생각해 보시고, 마음에 드는 스킨을 고르세요. '스킨 커버 편집'을 간단히 하면 멋진 첫 화면을 가질 수 있으니 한 번 해보는 것도 좋겠네요 #3 포럼에서 사람들과 소통하세요. 마지막으로 사용하시다가 티스토리에 대해 궁금한 내용이 있다면 '포럼'을 확인하세요. 찾기 어려울 땐 직접 질문을 ..