Self Hosting 당신은....Jenkins
·
우아한테크벨로/Level3
이번 레벨 3 프로젝트를 시작하면서 처음으로 인간 CI/CD 대신 Github Actions 기반의 CI/CD 파이프라인을 팀원들과 도입하기로 결정했다.하지만 초기 구상과 달리 인프라 환경에서 22번(SSH) 포트가 제약되어 있는 상황을 맞닥뜨렸고, 이를 해결하는 과정에서 여러 시행착오 끝에 Self-hosted Runner를 도입하게 되었다. 그 과정과 해결 방법을 기록한다. 1. 22번 포트 우회를 위한 시도와 한계처음에는 일반적인 GitHub Actions + SSH 접속(22번 포트) 방식으로 배포(CD)를 진행하려 했으나, 22번 포트 접근이 차단되어 다른 우회 방법을 모색해야 했다.시도 1 : Jenkins 도입EC2 서버 내부에서 Jenkins를 설치하고 GitHub Webhook을 연동하여..
토스페이먼츠 연동과 Rate Limit, Timeout
·
우아한테크벨로/Level2
이번 레벨의 마지막 선택 미션으로 이전에 창업 프로젝트를 진행하며 다루어보았던 '토스페이먼츠 결제 연동'을 다시 진행했습니다. 과거에 혼자 구현해 본 경험은 있지만 당시 부족했던 점들을 보완하고 더 깊이 학습하고자 선택했는데, 결과적으로 결제 시스템에 대해 훨씬 더 많은 것을 배울 수 있었습니다.간단한 초기 연동 과정이 궁금하시다면, 이전에 작성해 둔 제 과거 포스팅(링크)을 참고해 주시면 좋습니다.결제 위젯 연동 흐름ref. 결제 위젯 연동하기, 결제 흐름결제 과정은 크게 다음 4가지 핵심 단계로 이루어집니다. 렌더링 — 클라이언트가 renderPaymentWidget으로 결제 UI를 띄운다.요청 — 사용자가 결제 버튼을 누르면 클라이언트가 requestPayment로 결제를 요청한다.인증(결제 인증)..
Level 2 전체 회고
·
우아한테크벨로/Level2
1. 레벨2가 시작되면서 드디어 Spring을 시작했다.레벨2를 시작하면서 오랜만에 Spring Boot를 사용하게 되었다. 바인딩 어노테이션들을 쓰려고 하다보니 어떤 용도였었는지 기억하지 못해서 헤매는 일도 있었던 것 같다. 이전까지 Spring Boot를 사용하면서 단순히 "이걸 붙이면 이렇게 동작하는 어노테이션" 정도로만 생각하고, 입력과 결과만 보는 식으로 사용해왔었다. 하지만, 이번 레벨2가 시작되면서는 조금 다르게 학습하는 습관을 가지려고 했다.왜 이 어노테이션을 쓰고, 이 어노테이션이 어떻게 동작해서 이렇게 작동하는지 알면서 사용하고 싶었다. 그 과정에서 @Component와 @Configuration의 깊은 차이에 대해서도 알아볼 수 있었다.@Component와 @Configuration의..
『오브젝트』 저자 조영호 개발자님 초청 강연 회고
·
우아한테크벨로/Level2
직접 조영호 개발자님을 우아한테크코스 캠퍼스에 초청하여 강연을 준비하고, 강연을 들으면서 정리한 내용을 작성합니다.어느 개발자의 성장 일기: 조영호 개발자님 특강을 듣고『오브젝트』와 『객체지향의 사실과 오해』의 저자이신 조영호 개발자님(현 Alfred AI Native Engineer)을 초청하여 강연을 들었습니다. 이번 시간은 단순히 최신 기술의 트렌드를 쫓는 이야기가 아니었습니다. 1983년부터 지금까지 굵직한 기술 패러다임의 변화를 온몸으로 겪어온 한 선배 개발자의 생생한 '성장 일기'이자, 후배들을 향한 묵직한 조언이었습니다.변화의 시기, 열린 마음으로 적응하기영호님께서는 끊임없이 변화하는 IT 생태계 속에서 '적응'의 중요성을 강조하셨습니다. 특히 지금 우리가 맞이한 변화가 역사상 세 손가락 안..
Level 1 전체 회고
·
우아한테크벨로/Level 1
객체지향적 사고하기level1을 진행하면서 객체지향의 사실과 오해를 읽었다. 우테코를 시작하기 전에는 단순히 이것저것 주워들은 내용들을 가지고 주먹구구식으로 코드를 짜왔었다. 사실상 스프링에 의존해서 코드를 작성해온 것이라고 봐도 될 것 같다.하지만,이번에는 다르다. 처음으로 제대로 된 고민을 하기 시작하고, 미션을 진행하면서 부족한 개념들에 대해서도 눈에 들어왔다. 그래서 처음으로 객체지향의 개념과 관련된 책을 읽기로 결정한 것이다. 이를 통해서 객체 지향적 설계란 무엇인지? 책임의 분리는 어떻게 하는 것인지, 각각의 도메인 구성요소에게 책임을 부여하고, 객체 스스로가 일을 하게끔 시키는 방법은 어떻게 해야하는 것인지 등을 알 수 있었고, 객체지향적 설계에 대해서 조금은 눈을 뜬 것 같다.매번 무작정 ..
Level1 1주차 회고
·
우아한테크벨로/Level 1
드디어, 우테코의 1주차가 시작되었다. 빠끼 마젤토브!첫날은 OT를 진행했다. 앞으로의 교육 일정, 우테코가 추구하는 방향성, 생활 정보 등을 전달받을 수 있었다.그 다음은 첫주차 미션들에 대해서 설명을 들었다.우테코의 활동 후기들을 찾아보진 않았어서 처음 들었지만, 다른 기수들도 모두 진행했던 활동이라고 한다. 바로 연극이다..!처음에 미션에 대한 영상을 보여준다고 해서, 영상을 주의깊게 보고있었는데 코치분들께서 촬영하신 영상이었다. 보안과 관련된 주제여서 아 무언가 보안관련 과제가 나오는건가? 하면서 뭐가 나오는걸까 하면서 지켜봤었다.근데 웬걸..? 연극이 주제였던 것이다...정말 생소하고, 조금은 당황스럽고, 참신했다. 온보딩팀을 기반으로 연극 주제를 정하고, 연극을 진행한다고 한다.그렇게 한주 동..
우테코 8기 최종 합격 향후 계획 및 회고
·
우아한테크벨로
꿈은 이루어진다.정말 바라던 일이 벌어졌다. 진짜로 합격해버린 것ㄷㄷ5주동안의 프리코스와 지원서 작성, 최종 코딩 테스트 과정을 모두 진행하고, 바들바들 떨고 있던 어제 할 일은 해야하기에 창업 프로젝트 미팅을 위해서 버스를 타고 출근을 하던 중 메일이 왔다.손발을 바들바들 떨면서 걱정반 기대반으로 메일을 확인하였고, 제목을 보자마자 눈물 찔끔 나올뻔 했다.😭 합격할 경우와 떨어질 경우를 모두 생각해서 떨어지고 할 일과 붙고 할 일을 나눠서 계획해뒀었는데, 합격 한 후에 할 일을 할 수 있게 되어서 너무너무 좋다ㅎㅎㅎ 우선 불합격 했을 경우를 얘기해보려고 한다.만약에 떨어지게 된다면 지인이 추천한 GIST 교수님께서 운영하시는 회사에 입사하여 돈을 벌면서 이직 준비를 하려고 했다. 조건은 석사까지도 주..
우아한 테크코스[프리코스] 최종 코딩 테스트 회고록
·
우아한테크벨로/프리코스 회고록
5주 동안 열심히 프리코스에 참여하였고, 그 결과 최종 코딩 테스트를 볼 기회가 생겼다.이것만으로도 좋은 성과라고 생각하지만, 사람의 욕심은 끝이 없지 않은가? 최종 코딩 테스트에서도 잘 봐서 꼭 우테코 8기에 참여하고 싶다고 생각했다.그래서 남은 기간 동안 이전 기수들의 문제들을 풀면서 코딩 테스트 준비도 하고, 자바 개념도 다시 한번 정리해 보면서 잊고 있던 기본 개념들을 다시 잡고, 남은 시간을 보냈다.다른 것보다 타입과 입출력 부분이 약하다고 생각해서 이부분을 준비하고, Enum과 Stream은 그전부터 계속 공부했었다.그리고 나는 다양한 후기 글들을 미리 보고, 템플릿도 만들고, 노션에 정리도 하고, 당일날 먹을 점심과 커피까지 계획을 짰다(간만에 J스럽게 굴었다..)마침내 최종 코딩 테스트 당..