웹 백엔드 4기

Server & Infra

Jenkins, Multibranch-pipeline을 이용한 CD

Jenkins의 Multibranch-pipeline을 이용한 CD 설정에 대해 정리해봅니다. CD의 필요성 인간 젠킨스 라는 표현에 대해 들어보셨나요? 자바 애플리케이션은 빌드 결과물로 .jar 파일이 생성되는데요, 이를 배포하려는 서버에서 실행시키는 것이 곧 배포에 해당합니다. 즉, 새로운 버전이 배포되어야 할 때마다 jar파일을 빌드해서 서버에 옮겨서, 배포해야 하는 것이죠. 위와 같은 배포 과정을 사람이 수동으로 하는 경우를 익살스럽게 인간 젠킨스 라고 표현하기도 합니다. 쉽게 말하면 수동 배포죠. 이러한 수동 배포는 당연하게도 여러 가지 문제가 있습니다. 번거로움, 생산성, 실수 가능성 등등 말이죠. 이러한 배포 작업을 특정 이벤트에 따라 자동으로 트리거되어 Jenkins가 대신해주게 설정할 수..

Server & Infra

Git에 잘못 올린 파일 삭제하기

Git에 잘못 올린 파일을 삭제한다 라는 표현은 다소 애매모호합니다. 하나의 케이스는 단순히 형상관리 대상에서 제외하기 위한 작업을 의미할 수 있고, 또다른 케이스는 모든 히스토리에서 완전히 제거하기 위한 작업을 의미할 수도 있습니다. 이번 포스팅에선 위 두 가지 케이스 경우 어떻게 대응해야할 지 알아봅니다. git rm : 형상 관리 대상에서 제외하기 Remove files from the working tree and from the index IDE 설정들을 담는 .idea 내 파일들, java 파일을 빌드한 결과들인 .class 파일 등은 형상 관리 대상이 아닙니다. 이처럼 형상 관리 대상이 아닌 파일들을 실수로 staging하여 commit, push까지 한 경우, 이들을 형상 관리 대상에서 제..

Java & Spring

jitpack, github를 이용한 라이브러리 배포하기

나만의 라이브러리를 만들어서 배포해봅시다! Bearer 토큰 추출을 조금 더 쉽게 할 수 없을까 로그인, 인증/인가 과정은 어느 프로젝트를 하더라도 추가하게 되기 마련인데요, 이 과정에서 Authorization Header에 담긴 Bearer 토큰을 추출해내는 코드를 매번 프로젝트에 복사 붙여넣기로 추가하는 과정이 너무 번거롭게 느껴졌습니다. 저만 느끼는 감정이 아닐 것이기에 분명 이미 만들어진 무언가가 있으리라 생각했는데, Spring Security OAuth쪽 패키지에 DefaultBearerTokenResolver가 있는 것을 확인했습니다. 그러나 이 클래스는 특정 의존성 이 제공하는 클래스 중 하나의 구성요소여서 다른 의존성도 함께 추가할 수밖에 없다는 점과, 일부 내부 구현이 저의 사용 의도..

Server & Infra

🔒HTTPS 한 스푼 (대칭키, 개인키, 공개키)

HTTPS의 동작 원리에 대해 알아봅시다! 🔑 안전하게 메시지를 주고받기 위한 대칭키 한 쪽에서 다른 쪽으로 안전하게 메시지를 전달하는 방법은 무엇이 있을까요? 중간에 메시지를 탈취당하더라도 발신자와 수신자만 알아볼 수 있고 탈취되더라도 내용이 유출되지 않을 수 있는 방법이요. 대칭키 방식을 이용하면 될 것 같아요! 위와 같이 g는 11로, o는 22로 표기하기로 약속했다면, go 라는 메시지를 전하기 위해 1122 라고 전달하면 되는 겁니다. 그러면 중간에 탈취당하더라도 다른 사람들은 1122가 무슨 의미인지 알 수 없겠죠? g가 11, o가 22에 해당한다는 저 약속이 유출되지 않는다면 안전하게 메시지를 주고 받을 수 있을 것 같아요! 이렇게 전송 시점의 암호화, 수신 시점의 복호화에 같은 키를 사용..

우아한테크코스 4기

🐹 줍줍 스티커 제작기

스티커 제작 넛지: 회고덕 아마도 3차 스프린트 초반이었던 것 같습니다. 회고덕 팀의 스티커가 배부되었는데, 너무 예쁘게 잘 나와서 스티커 붙이기를 그닥 좋아하지 않던 제가 모니터 스탠드와 사물함에 회고덕 팀의 스티커를 붙였습니다. 우리 팀 줍줍도 마스코트 디자인이 너무 잘 나왔기 때문에 꼭 스티커를 만들어야겠다 생각했습니다만 팀원 모두가 지쳐있고 너무 바쁜 상황이어서 디테일 하나하나를 모두 합의하며 진행하기엔 다소 무리가 있겠다 생각했습니다. 그래서 회고덕 팀의 아리를 통해 회고덕 팀이 제품을 제작했던 업체를 확인했습니다. 필요한 진행을 모두 진행한 뒤 최종 결정 시점에 의사를 확인하고 피드백을 받는 정도로 진행해도 무리가 없는 무게감의 일이 아닐까 추측했기 때문입니다. 사실 이러한 일 처리 방식은 상..

리차드
'웹 백엔드 4기' 태그의 글 목록 (3 Page)