원래 정해진 형식때로 작성했었는데 생각해보니 그럴 필요까지는 없을거 같다는 생각이 든다.아무튼이번엔 DDD에 대해 학습을 하였다. 대략적으로 도메인에 대해 학습할 수 있었던 시간이었던거 같다.저번주 화욜인가 수욜인가 멘토링을 끝나고 도메인이 어떤건지 고민을 해보았고그것을 같은 팀원분들께 공개 한적이 있었다.방금 확인했는데 수욜날 멘토링을 했었군요 암튼제가 어제 멘토링 끝나고 고민해봤는데요..도메인은 '재료'로 비유할 수 있을 거 같아요.예를 들어, 계란국을 요리한다고 했을때,계란,물이 도메인이라는 생각이 들었어요.도메인에서 서로 통신 하면 안된다는건재료의 순수성을 해치면 안된다는 걸로 이해가 되어집니다.이를 잘 알 수 있는 방법으로 계란과물을 합쳤을때 새로운 단어인 A로 바꿀 수 있다면A라는 도메인으로 ..
🧠 이번 주에 새로 배운 것다이어그램을 그리는 방법에 대해 배웠던거 같습니다. 요구사항 정의서시퀀스클래스erd등등erd같은 경우 회사 다닐때도 많이 그려봤지만 FK를 신경쓰면서 그린것은 이번에는 처음인듯하다.💭 이런 고민이 있었어요특히 시퀀스 같은 경우는 처음에는 어떻게 그릴지 고민이 많았습니다.어떻게 시작을 해야 할지 뭘 시작을 해야할지..전혀 알 수가 없었고무엇보다 다른 사람이 그린 시퀀스도 읽기가 쉽지가 않았습니다.그래서 어떻게 하면 시퀀스를 잘 읽힐 수 있을지 고민을 많이 했던거 같습니다. 💡 앞으로 실무에 써먹을 수 있을 것 같은 포인트포인트라.. 아직 구현 측면이 아니라서이거는 실무에 쓸수 있다 없다를 말하기는 어려울거 같습니다.왜냐하면, 설계는 선택이라고 생각하기 때문에 나의 생각을 어..
TL;DR거의 처음 설계를 하면서 왜 설계를 하는지에 대한 고민을 가지고 mermaid라는 툴을 통해 설계를 시도해보는 글입니다.들어가며지금까지 개발을 해오면서 설계를 제대로 했는지 생각해봤다.ERD말고는 만든 기억이 없다.그렇다고 해서 제대로 만들지는 않았던거 같다.그려면 왜 그렇게 하지 않았을까?그야 편하니까..개발자의 시선이 아닌 비 개발자의 시선으로 개발자를 바라본다면 '종이'가 아닌 '코드'를 먼저 작성한다고 생각한다.난 아직도 비 개발자의 시선으로 개발자를 바라보고 있는것이 아닌가그래서 당연하게 먼저 IDE를 키고, 코드를 작성하는거 같다.솔직히 아직 잘 모르겠다. 설계를 해서 직접적으로 얻은 이득은 아직 잘 와 닿지는 않는다.그럼에도 설계를 공부하고 해보는 이유는시도를 안 해봤기 때문에 어렵..
🧠 이번 주에 새로 배운 것 1. 리뷰 포인트를 재대로 작성을 해야 한다라는것을 배웠습니다. 💭 이런 고민이 있었어요1. 리뷰 포인트에 대해 어떻게 작성을 하면 좋을지 고민을 했던거 같습니다. 1.1 변명이긴하지만, 나중에 pr을 올리고 리뷰 포인트를 작성하려다보니 내가 어떤 포인트에서 고민을 했었는지 전혀 생각이 나지 않더라구요.🤔 아쉬웠던 점 & 다음 주에 해보고 싶은 것1. 리뷰 포인트 작성이 아쉬웠습니다.2. 궁금증이 생기는것이 있으면 코드는 어디든 메모를 해두고 pr을 올릴때 옮겨 적는 방식으로 나의 궁금증을 코치님께 전달드릴 예정입니다.3. 팀원들이랑 자주 소통을 하면서 어떻게 하면 더 좋은 설계 혹은 코드를 작성할 수 있을지 고민을 해보고 거기서 나온 포인트들을 리뷰 포인트로 작성할 ..
개요오늘도 평화롭게 코드를 작성하고 있었어요..저희 팀은 organazation으로 같이 코드를 관리하고 있기에 팀원들의 코드를 염탐해 봤습니다.그런데!!처음보는 코드를 발견하였습니다. 그건 바로 Embedded 요건 멀까?찾아보니 JPA에서 임베디드 타입을 제공하는 방법이었습니다.~~~~~이걸 활용하면 단위 테스트를 사용할때, 생성자 파라미터의 갯수를 줄일 수 있을꺼 같다!!!생각해보니...기존에 사용했었던 빌더 패턴도 생성자 파라미터 갯수를 줄일 수 있지 않나??갑자기 궁금해졌다. 뭐가 좋은걸까???그래서 뭘 테스트 했는데.초반에 다음처럼 단위 테스트를 작성하고 싶었습니다.String userId = "userI123456";CoreException result = assertThrows(CoreEx..
올해는 내 인생에서 제일 바빴던 6달이었다.올해 첫 나는 퇴사를 하게 되었다.Flab작년 11월 나는 내 개생에 중대한 결정을 하게 된다.아무리해도 회사일도 정상적으로 되지도 않았다. 그래서 기본기를 조금더 학습을 하면 좋지 않을까 해서신청하게 되었다. 그 당시 나는 피폐했고, 굉장히 부정적인 인간이었다. 오랜만에 느껴지는 감정이라 이것을 극복하고 싶었다.그러던 어느날 flab 광고를 보게되었다. 비싸긴해도 내가 멘토를 고용한다는 느낌으로 신청하게 되었다.flab을 시작하는 목적이 나는 '자신감'회복이었다. 그래서 이론적으로 강한분을 멘토로 선택하게 되었다.멘토님은 매주마다 질문을 하시고 나는 답변을 하였다.그러다 1월 중순쯤에 나는 퇴사통보를 받게 되었다..퇴사 후착찹했다. 이제 flab목적이 '자신감..
[이력 정리] - 과연 내 이력은 이직하는데 부족한걸까? (경력편) -1 [이력 정리] - 과연 내 이력은 이직하는데 부족한걸까? (경력편) -2 [이력 정리] - 과연 내 이력은 이직하는데 부족한걸까? (경력편) -3 생각보다 시리즈가 많이 나왔다.이제 세세하게 내가 일한 내용이 아니라 저 프로젝트?에 대해서 설명하면 될거 같다.1. 클라우드 관리 플랫폼2.도시 데이터 플랫폼이렇게 작성할 수 있을거 같다.지금까지 생각했을때 나는 코어 도메인은 맡지 않았던거 같다. 첫번째 같은 경우는 대기업에서 수주를 요청해서 제작했던 프로젝트였고 내가 입사했을때 개발을 하였다. 이력의 대부분을 이 프로젝트에 투자했던걸로 기억한다. 아무튼 이 프로젝트에 대해 설명하면 될거 같다.클라우드 관리 플랫폼은 크게 2..
[이력 정리] - 과연 내 이력은 이직하는데 부족한걸까? (경력편) -1. [이력 정리] - 과연 내 이력은 이직하는데 부족한걸까? (경력편) -2이제 내 경력이야기의 마지막일거 같다. SI에 근무했지만 했던 프로젝트가 2개밖에 존재하지 않는다. 그렇다고 해서 엄청많은 이야기가 있었던것도 아니었다. 내 개발 역사는 개발 그리고 문서였다. 의미없는 문서만 적는게 일상이었다. 남는게 아무것도 없다. 남은거라고는 오로지 기억에 의존할뿐이었다. 또, 나는 트러블 슈팅한 경험도 있지않는다. 이유는 모르겠다. 분명 열심히했던거 같은데 아무것도 기억이 나지 않는다. 난 여러가지 방법으로 이걸 선택했고 저걸 선택했고 그러지 않았다. 일단 정신차리고 어떤걸 했는지 깊게 고민하자. 이번에 할 이야기는 오픈소스로 개발을..
[이력 정리] - 과연 내 이력은 이직하는데 부족한걸까? (경력편) -1저번에 iam에 대해 정리를 했었는데 생각보다 많이 했던거 같다. 이제 나머지 config,metering,billing,lincense에 대해 정리를 하면 될거 같다. 얘네 같은 경우는 내가 main으로 가져가는 도메인이 아니기때문에 상대적으로 적을거라 예상한다.아마 정리는 3편까지 할거 같고 4편에는 이력서에 어떻게 적을지 작성해보는 시간을 가질려고 한다.자 본견적으로 시작해서 config부터 시작하자.config: 각 도메인에서 환경설정으로 사용될 서버에 대한 정보가 저장되어있다. 근데 소신발언하자면 초반에는 이 내용들이 나름 잘 지켜진거 같은데 나중에 되니 각 도메인에서 설정 API를 따로 만들었다. 어떤건지 정확하게는 기억이..
난 참 욕심이 많은거 같다. 나는 지금까지 올해만 3개나 듣고 있다. 이제 겨우 6월인데 반년을 교육으로 도배를 하였다.근데 왜 이렇게까지 교육을 듣는걸까?난 스스로 부족하다고 생각하고 있었다. 이게 나쁜건 아닌데 마치 지금까지 했던것들을 부정하고 새로운것으로 뒤엎고 있었다.이게 맞는걸까? 난 내 이력을 무시하고 있는걸까? 다만 아쉬운건 도메인적으로 개발을 열심히 했던거 같은데 특정 문제를 깊게 고민한 기억은 없었던거 같다. 지금 하는 교육으로 만약 그때로 돌아간다면 어떻게 고칠지도 고민해보자.음... 내 이력에 대해 간략하게 소개하면난 2021~2024년까지 근무를 했었다.그리고 거기서 진행한 프로젝트는 총 2개로 클라우드 프로젝트와 공공 데이터 프로젝트를 진행하였다.내가 맡았던 파트는 백엔드 개발를 ..
TDD를 학습하다보면 테스트 더블이라는 말이 나온다. 그렇다면 테스트 더블은 테스트를 두번하는걸까?gpt한테 물어보니 이 용어는 영화 용어에서 스턴트 더블에서 왔다고 한다.그리고 찾아보니 더블이 두배라는 뜻이 있지만 대역이라는 뜻이 있다고 한다.그럼 뜻을 다시 해석해보면 테스트를 하기 위해 대역을 쓰는거라고 이해하면 될거 같다.요런 관점에서 생각을 해본다면테스트 더블에는 총 5가지의 대역들이 존재한다.mock, spy, stub, fake, dummy요렇게 5가지가 있다고 한다.이제 대역이라는 것을 바탕으로 생각을 해보면mock은 구현에 대한 대역spy는 구현에 대한 대역stub은 값에 대한 대역fake은 구현에 대한 대역dummy는 값에 대한 대역요렇게 나눌수 있을거다.근데 이상한건 구현3에 값이2개다..
학습 키워드Unit Test / Integration Test / E2E Test테스트 Pyramid테스트 커버리지 vs 유의미한 테스트유닛테스트라는건 뭘까?서비스단에서? 컨트롤단에서? 음 아무래도 상관없으려나유닛테스트는 단위테스트라고 하며그림을 보면 알수 있듯이 단위 테스트는 테스트 피라미드 바닥에 존재하며 굉장히 많은 수 가 있다는 것을 알 수 있습니다.이는 간단하게 작성이 되어진다는 뜻이 되어집니다.이전 포스트에서도 말했었지만 테스트코드는 굉장히 중요합니다. 그렇다는 이야기는 e2e를 하든 통합을 하든 유닛을 하든작성을 하는것이 좋습니다. 여기서 중요한 사실은 유닛테스트가 양이 제일 많다는 것입니다. 그렇다는건 유닛테스트를 중점으로 테스트코드를 짜야 된다는 뜻이 됩니다.그리고 그림에서 보면 알 수 ..