본문 바로가기

BackEnd/기타7

[백엔드] 헥사고날 아키텍처 사용 후기 현재 회사에서 레거시를 제외한 대부분이 헥사고날 아키텍처를 이용하고 있습니다.약 2년 정도 쓴 것 같은데, 이를 이용하면서 느낀점들입니다. 1. 장점1) adapter를 유연하게 갈아끼움으로써 특정 기술에 대한 의존도가 줄어듭니다. 만약 postgreSQL를 이용해 데이터 저장하던 것을 mongoDB로 바꾼다면 adapter 만 갈아끼우고 비즈니스 로직은 수정을 하지 않아도 됩니다. 2)이렇게 함으로써 비즈니스 로직에 대한 단위 테스트도 하기 쉬워집니다.port는 전부 mocking을 이용하여 외부 의존성을 최대한 줄임으로써 테스트하기 쉬워집니다. 2. 단점하지만 단점도 많다고 느꼈습니다. 1) 추상화가 생각보다 어렵습니다.기술이 바뀌더라도 비즈니스 로직에 영향 안 받도록 하는 것이 생각보다 어렵습니.. 2025. 7. 5.
[GCP] VPC (VM instance + cloud sql) 설정 최근에 CMC라는 동아리를 하면서 새로운 프로젝트를 진행하고 있습니다. 이 과정에서 삽질 때문에 시간을 너무 많이 써서.... 해당 내용을 기록해두려고 합니다. 원래는 GKE를 이용해서 배포를 하려 했었는데, 계속 서비스가 정상적으로 동작하지 않아서 vm instance를 이용해서 배포는 해둔 상태입니다.   1. 문제우선 서버 세팅은 vpc 를 통해서 priavte subnet(10.0.1.0/24)이랑 public subnet(10.0.2.0/24)을 만들었습니다.그리고 cloud sql을 private subnet에 등록하려고 했지만, 이처럼 비공개 서비스 액세스라는 것을 만들라고 해서 이를 이용해서 만들었습니다.이는 10.0.3.0/24 범위를 가지고 있습니다. 여기서 문제가 10.0.3.0/24.. 2024. 7. 21.
[NextStep] TDD, 클린 코드 with Java 18기 참여 후기 평소 TDD나 클래스 설계에 관심이 있었습니다. 그래서 책을 통해 공부는 했지만, 이 지식을 이용해 구현한 코드가 제대로 된 구조인지 궁금해서 이 프로그램에 참여했습니다.(현재 회사에서는 코드 리뷰 문화가 없습니다 ㅎㅎ..) 과제가 총 4개 있고, 이를 구현하고 PR을 보내면 리뷰를 받는 방식으로 진행이 되고 있습니다.리뷰는 현업자 분들에게 받기도 하고 해당 프로그램이 가격대가 나가는 편이라서 꼼꼼하게 리뷰 해주십니다. 인상깊었던 점은 캐시 관련해서 인상깊었습니다.내용이 인상깊었다기 보다는 제 공부 태도에 대해 반성을 할 수 있었습니다. 자주 이용하는 클래스는 계속 새로 만들기 보다는 캐싱을 해서 이용하면 heap 공간을 절약할 수 있습니다.Java의 Integer에 캐싱을 이용하는 것은 알고 있.. 2024. 4. 20.
[우아한테크 프리코스 6기] 4주차 크리스마스 프로모션 회고 안녕하세요. 3주 차는 건너뛰고 바로 4주 차로 왔습니다. 3주 차를 회고하지 않은 이유는 이전에 회고했던 내용이랑 크게 다르지 않았습니다. 4주 차는 생각보다 많이 어려웠습니다. 기능이 복잡하기보다는, 클래스 설계하고 테스트하기가 어려웠습니다. 과제 내용 간단하게 요약해서 설명드리겠습니다. https://github.com/Danden1/java-christmas-6-Danden1 GitHub - Danden1/java-christmas-6-Danden1 Contribute to Danden1/java-christmas-6-Danden1 development by creating an account on GitHub. github.com 자세한 문제 내용은 이를 참고해 주시면 되겠습니다. 12월에 메뉴.. 2023. 11. 20.
[우아한테크코스 프리코스 6기] 2주차 자동차 회고 작년에 참가했었지만, 2주 차는 다른 문제였습니다. https://github.com/Danden1/java-racingcar-6/tree/Danden1 GitHub - Danden1/java-racingcar-6 Contribute to Danden1/java-racingcar-6 development by creating an account on GitHub. github.com 이번에는 테스트 코드 작성을 위해 리팩토링을 많이 진행했었습니다. 이번 조건으로는 랜덤으로 9까지 숫자를 생성하는데, 4 이상 일 경우만 전진을 진행하도록 해야 했습니다. 이 랜덤 값을 테스트하기 위해서 리팩토링을 진행했습니다. 처음 코드입니다. 처음에 짠 코드가 저 빨간 줄 입니다. 이는 테스트할 방법이 없습니다. 그래서 .. 2023. 11. 5.
[우아한테크코스 프리코스 6기] 1주차 숫자 야구 회고 작년에도 프리코스에 참가를 했었습니다. 작년과 비교하여 얼마나 발전했는지 궁금해서 이번에 참여해 봤습니다. 작년 코드 우선 작년에 구현했던 코드 구조부터 한 번 보겠습니다. https://github.com/Danden1/java-baseball/tree/Danden1 GitHub - Danden1/java-baseball: 숫자 야구 게임 미션을 진행하는 저장소 숫자 야구 게임 미션을 진행하는 저장소. Contribute to Danden1/java-baseball development by creating an account on GitHub. github.com 이렇게 분리했었네요. Model에 숫자를 만들고, 유효성을 검사하고 strike가 몇 개인지 판단하는 등 모든 기능이 들어가 있습니다. 이.. 2023. 10. 26.