전체 글19 [Java] 함수형 인터페이스(Functional Interface)를 활용해 중복 코드 줄이기 배경 우아한 테크코스 7기 프리코스의 3주차, 4주차 과제에 다음과 같은 요구사항이 있었다.사용자가 잘못된 값을 입력할 경우 예외를 발생시키고, "[ERROR]"로 시작하는 에러 메시지를 출력 후 그 부분부터 입력을 다시 받는다. 처음 구현한 코드는 사용자 입력을 받는 컨트롤러의 메서드마다 `try-catch` 구문 처리를 하고,예외가 발생했을 때 에러 메시지를 출력한 뒤 재귀호출을 하는 형태였다.public class LottoController { // ... private PurchasePrice requestPurchasePrice() { try { outputView.displayPurchasePriceRequest(); re.. 2024. 11. 24. [번역] JUnit5 Parameterized Test 가이드 본 글은 Baeldung의 Gide to JUnit 5 Parameterized Tests를 일부 번역한 글입니다.정확한 정보는 원문을 통해 확인해주시길 바랍니다! JUnit 5 (OverView)Parameterized Test는 JUnit5의 새로운 기능 중 하나로, 하나의 테스트 메서드를 서로 다른 인자들을 이용해 여러번 실행할 수 있는 테스트 도구이다. 다음과 같은 유틸성 함수를 테스트한다고 해보자.public class Numbers { public static boolean isOdd(int number) { return number % 2 != 0; }} `@ParameterizedTest` 어노테이션을 사용해 Parameterized Test를 구현할 수 있다.@Pa.. 2024. 10. 27. [우테코 7기 프리코스] 1주차 회고 우아한 테크코스 7기 프리코스 1회차 과제가 끝났다! 2년 전 Spring Boot로 서비스 MVP를 개발한 이후, 정말 오랜만에 Java 프로젝트를 경험하고 있다.처음에 과제를 열어봤을 때, 프로그래밍 요구 사항과 기능 요구 사항이 생각보다 간단해서 의외였다. 조금 안일하게도 나는 “이렇게 간단한 프로그램에 설계가 필요할까?”라고 생각하며 설계보다는 기능 구현을 먼저 시작했다. 올해 인프콘에서 발표된 지속 성장 가능한 설계를 만들어가는 방법 세션에서 인상 깊었던 “가장 좋은 설계는 설계를 하지 않는 것이다”라는 말도 떠올라, 우선 기능 구현에 집중할 수 있었다.결과적으로는 기능 구현을 하다보니 설계의 필요성을 느낄 수 있었고 좋은 구조와 코드에 대해 고민해볼 수 있는 기회가 되었다. 그리고 요구 사항이.. 2024. 10. 25. [글또] 처음 만난 따뜻한 개발자 커뮤니티 글또 활동을 하게 된 계기 9월에 퇴사 결정을 하면서 글또 마지막 기수를 모집한다는 소식을 들었다. 구글링을 하다가 마주치는 기술 블로그들을 통해서 글또라는 커뮤니티를 알게 된 지는 꽤 됐는데, 매번 신청기간을 놓쳐서 마지막 기수가 되어서야 참여하게 됐다. 최근에 무기력하게 지낸 날이 많았는데 글또 지원서를 작성하면서 정말 오랜만에 좋은 에너지가 차오르는 기분을 느꼈다!대학생 때 매학기마다 새로운 팀원이 들어오는 프로젝트를 운영하고, 매주마다 팀의 컨텍스트가 바뀌는 스타트업에서 일하면서 문서화의 필요성을 체감해 왔다. 그래서 프로젝트를 할 때마다 늘 문서화를 가장 열심히 하는 팀원이었다. 심지어 이런 문서화 작업과 글에 대한 피드백을 받는 것을 매우 좋아한다. 이런 상황에 내가 작성했던 글은 주로 환경.. 2024. 10. 13. [글또] 내 삶의 지도 이 글은 글또 10기 지원 과정 중 작성한 글입니다.현재 저의 모습과 가치관이 과거의 어떤 과정들을 거쳐 형성되었는지 돌아보는 기회가 되었습니다 :) 🤓 학창시절내가 기억하는 꽤 어렸을 때부터 누가 시키지는 않았지만 현실적인 상황을 고려해 "주어진 환경에서 할 수 있는 일에 최선을 다하자!" 라고 생각하며 가장 우선순위의 임무로 주어진 학교 공부를 열심히 하기 시작했다. 고등학생 때까지도 시험 성적밖에 모르는 경주마처럼 지내다보니 나는 문이과 중 어느 쪽으로 가고싶은지, 세상에는 어떤 직업이 있는지 등 진로탐색을 잘 하지 못한채 문과 과목을 비교적 잘 못하니 이과를 선택하게 됐다. 내가 고등학생 때 빅데이터, 빅데이터 분석가 이런 말들이 한창 떠오르고 있었고 주변에서도 컴공, 컴교로 진학을 많이 하고 .. 2024. 9. 22. [인프콘 후기] INFCON 2024 🍀 올해도 인프콘에 가게 됐다! 첫 해에는 정말 운이 좋게 당첨이 돼서 다녀올 수 있었고 작년에 이어서 올해도 우드 덕분에 초대권을 받아서 다녀올 수 있었다!최근에는 랠릿도 열심히 사용하는 엔드유저로서, 인프런과 랠릿 서비스가 매일 조금씩 좋아지는 걸 경험하고 있는데 인프콘도 매년 달라지는 프로그램들을 경험하러 가는게 너무 기대되고 즐겁다! 이번에 랠릿 허브랑도 연동해서 인프콘 참여자들을 필터해서 보는 거랑 프로필 QR을 네임택에 붙여주시는 것도 재미있었다!회사에서 여러 경험들을 하면서 작년보다 올해는 발표 세션을 들을 때 더 많은 내용들이 들리고 공감되기도 했다. 역시 아는 만큼 보인다는 말을 또 되새기며 내년에는 올해보다 더 많은 경험을 하고 더 시야를 넓혀서 참여할 수 있으면 좋겠다고 생각했다.작.. 2024. 8. 3. [AWS] CloudFormation Lamda UPDATE_FAILED 에러 회사 프로젝트의 대부분은 serverless 프레임워크로 운영하고있다.최근에 마지막 배포가 1년도 더 이전인 프로젝트를 수정할 일이 있었는데, 작업을 하고 배포를 하려고하니 CI에서 이런 에러가 나면서배포가 실패했다.Stack:arn:aws:cloudformation:--- is in UPDATE_ROLLBACK_FAILED state and can not be updated. CloudFormation 콘솔에서 확인해보니(Stacks > Stack details > Events) 배포에 실패한 람다 함수 이름이 CustomDashresourceDashexistingDashs3LambdaFunction 이고, 업데이트 실패 사유가 이렇게 나와있었다. The runtime parameter of nod.. 2024. 5. 13. 스타트업 백엔드 개발자 첫 1년 회고 22년 9월 ~ 12월 인턴을 마치고, 인턴을 진행했던 회사에서 23년 2월 6일 정규직으로 입사를 했다. 입사한지 1년이 된 시점에 지난 1년을 되돌아보고 앞으로는 어떻게 지낼지 생각해보기 위해 회고를 작성한다! 인턴을 했던 회사에 입사를 결정한 이유? 대학교 마지막 학기에 4개월동안 재직중인 회사에서 인턴을 진행했다. 인턴을 마치고나서 정규직 제안을 받았고 마지막 학기에 인턴을 하느라 제대로 취업준비를 해보지 않은 상태에서 입사를 할지, 취준을 해볼지 정말 고민을 많이했다. 물론 서비스의 도메인에도 관심이 있었고, 입사 전 생각해본 적은 없지만 saas 플랫폼이 겪는 챌린지 요소들도 재미있었다. 그리고 같이 일하는 팀원분들도 좋았다. 그런데 결정적인 이유는 감사하게도 인턴을 하며 동료분들께서 주신 나.. 2024. 2. 22. [Node.js] 인앱결제 서버 개발기2 (구글 플레이스토어) 지난 시간에 이어, 이번 글에서는 안드로이드 구글 플레이스토어 인앱결제를 지원하는 서버 구현에 대해 이야기해보겠습니다. 참고) Google Play 결제 시스템 개요 공식문서 사전 준비 Google play server API 호출을 위해서는 Access Token을 발급 받아야합니다. Access Token 발급에 필요한 JWT 생성을 위해 서비스 계정을 만들고 private key를 준비해보겠습니다! 참고) Google Play Developer API 공식문서 Google Cloud 프로젝트에 개발자 계정 연결 및 연결된 프로젝트에 Google Play Developer API 사용 설정 1. Google Play Console 로그인 2. 설정 > API 액세스 > 프로젝트 생성 / 연결 > Go.. 2023. 7. 23. 이전 1 2 3 다음