본문 바로가기

분류 전체보기

(187)
프로젝트 `오디` 핵심 기능 구현 일지 : 실시간 친구 도착 예정정보 공유 기능 언제, 어디서, 무엇을 하든 지각하지 않게 도와주는 서비스 `프로젝트 오디`에서는3차 스프린트 목표로 실시간 친구 도착 여부를 알 수 있는 기능을 핵심 기능으로 삼았습니다. 프로젝트 오디의 서비스가 궁금하신 분들을 위해 소개 영상을 첨부합니다.https://youtu.be/-dsyc4CppL0  여기서 `실시간 친구의 도착 여부를 알 수 있는 기능`이란 약속 30분 전부터 친구에게 물어보지 않아도 시간 내에 도착할 수 있을지, 어느정도 걸릴지 등 실시간으로 친구의 위치를 기반으로 도착 예정정보를 제공하는 기능을 일컫습니다. 즉, 우리는 소비자에게 두 가지 기능을 제공해주고자 했습니다.1) 시간 정보 : 친구가 약속장소까지 몇 분정도 남았는지 알 수 있다2) 지각 정보 : 친구가 지각할지, 안 할지 물어보..
🌐NAT gateway로 private 서브넷에서 외부 API 호출하기 안녕하세요 브로코딩입니다. 오늘은 프로젝트 '오디'에서 EC2가 private subnet안으로 들어감에 따라 외부 API 호출이 되지 않았던 문제를 극복했던 과정에 대해 기록해볼까 합니다.   🤔 Situation : 무슨 상황이었나? : private 서브넷 인스턴스에서 외부 API를 호출하지 못함 상황은 이렇습니다. 우아한 테크코스 레벨4 운영환경에서 미션 요구사항은 public subnet에 있는 prod 서버를 private subnet 내로 옮기는 작업이었습니다.  AS- IS TO-BE 여러가지 변화가 있지만 이슈를 겪게 했던 가장 큰 변화는 바로 public subnet 내에 있었던 prod 서버 ec2가 private subnet으로 들어가면서부터였습니다. 현재 오디 팀에서는 실시간 대..
CD 배포 스크립트 실행 중 오류가 발생한다면? : tag를 활용한 롤백 전략 구축 하기 우아한 테크코스 Level 3 마지막 주에는 크루와 코치님 한분이 팀을 이루어 서로가 팀 프로젝트 안에서 배운 것을 면접 식으로 문답하는 '레벨 인터뷰'라는 문화가 있습니다. 저는 CI / CD 스크립트 작성을 맡아 이에 대한 질문을 받았는데요. 많은 질문 중 한 가지 질문에 크게 당황하며 답하지 못했던 기억이 있습니다. 바로 이 질문인데요. CD 스크립트 수행 중 오류가 발생하면이를 대처할 롤백 전략을 세워두셨습니까?  왜 생각해보지 못했나?-  운영 단계가 아니라 dev 서버 밖에 존재하지 않았기에 CD 스크립트 실패를 크게 염두해두지 않았습니다  그러나, 운영환경에서 CD 스크립트가 실패한다면? 그러나 운영 단계에서는 애플리케이션을 띄우는 과정에서 오류가 발생했다면 이를 대처할만한 롤백전략의 중요성..
🙉 Test Fixture 생성전략에 대한 고민 feat) FixtureMonkey 무엇이 문제였나?팀 컨벤션으로 dummy sql을 사용하지 않기 + @Transaction을 사용하지 않기로 정했다.즉, 매 test마다 데이터 셋업을 통해 테스트 격리성을 챙기기로 했다 그러나, domain 객체가 하나둘 많아지면서 테스트 작성시 데이터 셋업 과정이 매우 길어지게 되었다.비슷한 도메인 객체를 초기화해주는 과정이 반복되었고, 이러한 불편함은 연관관계가 많은 객체일수록 심해져갔다. [이전 코드 - given 절이 매우 길다] @DisplayName("내 약속 목록 조회 시 오름차순 정렬한다.") @Test void findAllByMember() { //given Member member = memberRepository.save( ..
프로젝트 API문서 작성을 위한 Swagger 도입기 목차 1. API 문서 선정 기준 2. Swagger 선정 이유 3. 프로젝트 API 작성 사이클 4. Swagger 단점 극복기    4-1) 프로덕션 코드 침해 > interface 분리    4-2)  중복 코드 > 커스텀 애너테이션 5. 느낀 점 프로젝트에 들어오기 전 방학 때 가장 신경썼던 것이 무엇이냐 묻는다면 단연코 프론트와의 협력에서 가장 중요한 API문서이다. 그래서 Lv2 방학 기간 동안 Rest Docs와 Swagger를 각각 사용해보며 장단점을 알아보는 시간을 가지기도 했다. >> [Rest Docs vs Swagger] 시리즈더보기- 1편 : Rest Docs로 API 문서 자동화해보기 - 2편 : Swagger Spring docs적용기 이번 글에서는 우리 팀이 API 문서 작성..
2024 중앙대 프로그래밍 경진대회 후기 및 문풀(A1 - D2) 자.. 지금이 무슨 상황인고 하니, 자교 알고리즘 경진대회에 참여 후, 약 2시간이 지나지 않은 시점에서 쓰는 후기이다. 이번이 첫 오프라인 대회 참석이라 가벼운 마음으로 대회에 참여했다.그런데 웬걸?! 문제가 이전 대회 기출보다 굉장히 쉽게 나와 풀만 했다.결과적으로 2등을 했다! 그래서 커피와 에너지 음료에 절여져 흥분되어 있는 이 기분 좋은 여운이 가시기 전에 빠르게 후기를 작성하고자 오랜만에 도서관에 와 노트북을 켰다. 문제 등급별 분포문제는 9문제가 나왔고 각 등급별 분포는 다음과 같았다등급개수A1문제B3문제C3문제D2문제 등급별로 문제 난이도가 올라가고, 등급 내 문제 난이도는 순서와 상관 없다.(ex) B1은 A1보다 확실히 어렵다, 그러나 B2가 B1보다 어렵다는 보장은 없다) 나는 9문제..
Odsay 대중교통 길찾기 API를 쓰며 느낀 3가지 단점 일전에 프로젝트에 도입할 대중교통 길찾기 API 비교글을 작성했었다. 당시 우리 팀은 Odsay API를 활용하기로 선택했었는데, 배우기 쉽고 구현하기 쉽다는 것이 가장 큰 이유였다. 그러나, 직접 API를 사용하며 몇가지 불편함을 느꼈는데, Odsay API 활용을 고려하고 계시는 분들께 도움이 되고자 글을 작성해보고자 한다. 불편한 점은 다음과 같았다.1) 일일 호출 건수가 1000건으로 매우 적다.2) 에러 시, 상태코드 200이 반환되며 에러 객체 형태가 가변적이다.3) 호출 IP 주소를 직접 등록해주어야 한다. 그럼 Odsay API의 불편한 점들과 나름대로 생각해낸 극복방안을 소개해보고자 한다.  1) 일일 호출 건수가 1000건으로 매우 적다. 오디세이에 일일 호출 가능 건수는 1000건이다..
[Google Maps vs Odsay] 대중 교통 길찾기 API 비교하기 상황 프로젝트 진행 중 출발지(A)와 도착지(B)의 좌표값을 기반으로 대중교통을 이용할 때 어느정도의 시간이 소요되는지를 알아야 했다. 그 과정에서 Google Maps API와 Odsay가 후보군으로 추려졌다. 각 vendor의 대중교통 길찾기 API는 어떤 장단점을 가지고 있을까? 직접 코드를 쳐보며 장단점을 느껴보자 [SPEC 비교] - 요약vendorGoogle Maps APIOdsay특징- 월간 200달러 한도 무료(초과시 자동 과금)- 1000건에 5달러=> 일간 1333건까지 무료- 일 1000건- 6개월 간 무료 [ Odsay]=> 일 1000건에 한해 6개월간 무료 이용 가능하다= 오디세이 플랜 링크  [Google Maps]구글은 제공하는 API 기능에 따라 가격이 다르다매월 200달러..