[Github Actions] 원격 레포지토리에 파일 저장하기
·
Git & GitHub/Github Actions
Github Actions을 사용해 파일을 생성하고 그 파일을 레포지토리에 저장하고 싶다면 어떻게 해야할까? Github Actions는 가상 머신에서 라이브러리의 기능이나 명령어를 통해 동작한다. 가상 머신에서 레포지토리의 코드를 가져와, 내가 원하는 파일을 생성하고 그것을 원격 저장소에 저장하면 된다. 레포지토리에  파일을 저장하려면 git push를 해야하기 때문에 권한이 필요하다. 토큰을 발급받아야 하고 그 토큰을 사용해 레포지토리의 원격 저장소에 접근하면 된다.  토큰 발급먼저 Developer Settings에서 Access Token을 발급받아야 한다.아래와 같이 repo 권한을 가진 Access Token 하나를 발급해준다. 토큰 값은 레포지토리의 Secrets에 설정해줘야 하니 메모장에 ..
2024 오픈소스 컨트리뷰션 아카데미 시작!
·
활동/오픈소스 컨트리뷰션
오픈소스 컨트리뷰션인프콘 발표자를 지원했으나 떨어졌고, 넥스터즈는 서류 광탈.이제 해볼 만한 게 없을까 이것저것 찾아보다가 2024 오픈소스 컨트리뷰션 아카데미가 눈에 들어왔다.링크: 2024 오픈소트 컨트리뷰션 아카데미 [참여형] 멘티 모집 원래 작년에도 지원해보고 싶었으나 지인들과 사이드 프로젝트를 시작했고, 회사 프로젝트가 바빠지면서 단념했었다.다시 현 시점. 회사에서 큰 프로젝트도 마쳤고 생활에 여유가 생겼다. 오픈소스에 언제가는 꼭 기여해보고 싶다는 목표가 있었고, 스터디 모임 말고는 할 게 없었기 때문에 오픈소스 컨트리뷰션에 지원해보기로 했다. 되면 좋고~ 안되면 말고~ 프로젝트내가 프로젝트를 선택한 기준은 아래와 같다.백엔드 개발과 관련된 프로젝트인가프로젝트에 기여한 내용이 나의 개발 실력,..
[Spring] 스프링 이벤트로 유연한 설계 만들기
·
Spring/Spring
개발을 하다보면 너무 많은 의존성이 엮어 있어 가독성도 떨어지고, 단위테스트를 작성하기 어려운 객체를 만나곤 합니다. 이런 상황에서 스프링 이벤트가 도움이 될 수 있습니다. 스프링 이벤트는 Observer Pattern으로 구현된 기술로 객체 간 강결합 의존성을 떼어내기 위해 사용합니다. 해당 객체의 주 관심사가 아닌 로직과의 결합을 느슨하게 만들어 주 관심사에 집중할 수 있게 해줍니다.  1. Spring Event를 사용하기 전 알아두면 좋은 것들!1-1. Observer Pattern객체의 상태 변화를 관찰하는 관찰자의 목록을 객체에 등록하여 피관찰되는 객체의 상태 변화가 있을 때마다 메시지 교환을 통해 객체가 직접 목록의 각 옵저버에게 알리도록 하는 디자인 패턴입니다.  옵저버 패턴의 구성 요소는..
Remote JVM Debug (feat. IntelliJ, k8s)
·
JAVA
애플 로그인 만드는 작업을 했는데, 애플 로그인은 다른 로그인과는 다른 특징이 있었습니다.http나 로컬호스트에서 사용 불가결국 Dev나 Stag 서버에 배포해 테스트해보는 수밖에 없었는데 디버거 없이 개발하는 과정이 굉장히 불편하게 느껴졌습니다. 하나하나 로그 찍고 배포하고, 또 확인할 거 생겼을 때 다시 로그 찍고 배포해서 확인할 수도 없고...어떻게 하면 원격에서도 디버거를 사용할 수 있을까요?본격적으로 시작하기 전에 디버거에 대해 알아봅시다.  Debugger백엔드 애플리케이션을 만들어 보신 분이라면 대부분 IDE에 내장된 디버거를 사용해보신 경험이 있으실 겁니다.Eclipse, IntelliJ IDEA와 같은 IDE는 디버거를 가지고 있는데요. 개발자들은 이 디버거를 사용해 코드의 플로우나 변수..
[Spring] RestClient URI Encoding 문제 (feat. 퍼센트 인코딩)
·
Spring/Spring
RestClient의 URI 인코딩DefaultUriBuilderFactoryRestClient를 생성할 때 보통 Builder를 사용해 만들게 됩니다.public interface RestClient { ... static RestClient.Builder builder() { return new DefaultRestClientBuilder(); } .... }RestClient.Bulider가 build() 하는 시점에 아래와 같이 DefaultUriBuilderFactory를 기본으로 생성해 가지고 있습니다.public class DefaultRestClientBuilder { ... @Override public RestClient b..
[글또] 글또 9기 회고
·
활동/글또
글또를 시작했던 이유집-회사만 반복하던 일상. 우물 안 개구리가 되어 간다는 생각을 떨칠 수 없었다.회사 일이 바쁘다는 핑계로 어느샌가 블로그를 작성하지 않게 됐다. 글또 지원은 그 때 상황을 타개할 수 있는 가장 좋은 방법이었다.글또에서의 활동은 죽어있던 블로그에 새 활력을 불어 넣었고, 회사 일밖에 모르던 내게 새로운 자극을 주었다.  글쓰기글또 9기를 시작하기 앞서 목표로 설정했던 "미제출하지 않기"는 달성했다.제출한 글총 12회차 중 2번 패스했지만 나머지 10회차의 글은 제출했다. 회사에서 새로운 프로젝트를 시작하면서 굉장히 바빴기 때문에 글을 잘 작성할 수 있을지.. 걱정이 많았다. 그래도 없는 시간을 잘 쪼개서 글을 작성하니 못할 건 아니었다. ✅ 1회차 제출 | 글또 9기 발돋움✅ 2회차 ..