본문 바로가기

반응형

Blog for Programming

(167)
[산업기능요원] 마카오 워크샵 기념 회고록 #2 🇲🇴 1. 서론 워크샵에 참가했다. 마카오에서 글로벌 게임 엑스포가 주최되어 해당 엑스포에 참가하기 위해 마카오로 출발하였다. 주변에서 회사 복지가 참 좋다고 하였고, 나도 그렇게 느끼고 있다.  이번 글은 회고록 보다는 지금까지 회사에서 있었던 일들의 후기가 될 것 같다는 느낌이 강하게 든다. 귀국 후 하루밖에 지나지 않았지만, 그렇기에 더욱 생생한 글을 작성할 수 있지 않을까 생각이 든다.2. 본문- 적응  회사에 적응이 되고있는 것 같다. 오만한 생각일 수 있지만, 그래도 어느정도의 업무는 혼자서 할 수 있게 되었다. 물론 어려운 로직의 게임이 기획되면 아직도 걱정이 앞서기는 한다.  우리 회사의 업무 순서는 다음과 같다.서버 개발클라이언트 개발개선신규 게임 출시 서버가 완성된 상태에서 클라이언트 개발이..
[programmers] 258711번 - 도넛과 막대 그래프(BFS, 2024 KAKAO WINTER INTERNSHIP) 1. 문제 및 예제  카카오 문제에 신나게 달려들었다가 멘탈 박살났다. 처음 들어갈때는 "이게 왜 LV.2야 ㄷㄷ" 라는 생각이 들었는데, 풀다보니 "이게 왜 LV.2야?" 라는 생각이 계속 들었다. ㅋㅋ 임의로 생성된 노드를 구하는 방법이 진입 간선과 진출 간선의 수를 가지고 구한다는 생각을 하지 못해 결국 남의 풀이를 찾아 보았다. 역시 카카오는 기발한 생각으로 쉽게 문제를 풀 수 있거나 문자열과 같이 미친 집중력과 피지컬을 요구하는 쌩짜 구현 이 둘로 나뉘는 것 같다. 불평 해봤자 달라질 건 없으니 해당 방법으로 임의의 노드를 구하고 각 그래프의 종류를 구했다. 각 그래프의 종류를 구하는 방법은 어렵지 않았다. (솔직히 간선의 수로 다 해결할 수 있는 문제였구나를 나중에 깨달았다.)https://s..
[산업기능요원] 정직원 기념 회사 적응 회고록 #1 📌 1. 개요 산업기능요원으로 근무하는 회사에 정직원이 되었다. 달력에 표시해놓은 수습 종료일자 전주에 복지카드가 와서 정직원이 됐다는 사실은 조금 더 빠르게 알게 되었다. 사실 그 전부터 팀장님께서 "제가 수습 기간 평가 자체 박하게 작성할 생각이었으면 그전에 몇번 주의를 줬을 것이고 작성 전에도 미리 말씀드렸을 거에요. 크리티컬한 일도 없고 적응이 빨라 수습기간에 너무 걱정하지 마세요." 라고 말씀해주셔서 안정감을 가지고 있었다.  회사 생활은 이전 CJ Olivenetworks에서의 계약직 생활이 다인 나에게 첫 정직원으로서 1년이상을 근무해야하는 회사는 이번이 처음이기에 마음가짐에 많은 책임감을 느꼈다. "남자들이여 제발 책임감을 가지세요!" 라는 조던 피터슨 형님의 말에 많이 동감하는 3개월이었다...
[FLOWBIT] BITCOIN SERVICE의 DDD 구조 작성 📚 1. 개요 길고긴 DDD 스터디가 끝나고 해당 구조를 나의 서비스에 적용해보고 싶었다. 사실 기본적인 개념만을 이해한 상태에서 서버에서 돌아가고 있는 서비스의 구조를 바꾸는 것은 생각보다 쉽지 않았다. 바운디드 컨텍스트를 MSA를 구성하는 하나의 서버라고 생각하고 도메인을 정리하니 나름 구조가 갖춰졌다. 이번 기록지에서는 기존에 돌아가던 서비스에 DDD 개발론을 적용하는 과정을 적어보고자 한다. 2. 본론 일단 기존의 파일 구조는 다음과 같았다. (이렇게 보니 머신이고 뭐고 아주 개판인 것 같다.) 아주 개판이다... ㅋㅋㅋ spring boot의 controller, service, dao, dto, repository 계층의 구조만 알고있던 사람이 자동시스템 코드에 주먹구구식으로 배운 flask 프레..
도메인 주도 개발 시작하기: DDD 핵심 개념 정리부터 구현까지 - 최범균 1. 개요 FLOWBIT 프로젝트를 끝내고 같은 팀원인 형님의 추천을 받아 DDD 스터디를 시작하였다. 처음 읽었을 때는 그저 클린 코드에 관한 서적 같은 느낌이 들었지만, 본격적으로 애그리거트의 개념이 나오는 순간 생각보다 정말 많은 시간이 필요하겠다는 생각이 들었다. 퇴근을 하고 내 몸둥아리가 맘에 들지 않아, 꾸준히 운동을 하기로 마음을 먹었기 때문에 퇴근을 하고 집에와서 잠을 자기 전까지 한 3시간 정도의 시간이 있었다. 씻는 시간까지 생각하면 한 2시간에서 2시간 30분 정도...? 주말이 있기에 다행이었지 지금 생각해보면 어떻게 완독을 했는지 싶다... 2. 본론 책 제목에 맞게 기본적인 부분 부터 심화된 부분까지 설명된 책이라고 생각된다. 구현에 대한 세세한 부분이 도메인 설계부터 나오기 때..
[산업기능요원] 산업기능요원 개발자 구직 성공 후기 📝 1. 산업기능요원이란 무엇인가... 대학생활이 끝나고 산업기능요원 신분으로 근무를 시작하게 되었다. 인터넷에 찾아보면 워낙 악명이 높다는 말이 많지만, 지금까지 나는 매우 매우 매우 만족하면서 근무를 하고 있다. 산업기능요원이란 보충역 판정을 받은 사람들이 공익근무지가 아닌, 국가에서 지정한 산업체에서 근무할 수 있는 제도이다. 간단하게 말하면 지하철이나 동사무소에서 일하지 않고 회사에서 일할 수 있다고 생각하면 된다... 개요 - 전문연구,산업기능요원 - 복무제도 - 병역이행안내 - 병무청 병역이행안내INFORMATION --> --> 개요 개요 제도의의 병역자원 일부를 군 필요인원 충원에 지장이 없는 범위내에서 국가산업의 육성·발전과 경쟁력 제고를 위하여 병무청장이 선정한 병역지정업체 www.mma...
[DDD] chapter 11 Chapter 11 11.1 단일 모델의 단점 주문 내역 조회 기능을 구현하려면 여러 애그리거트에서데이터를 가져와야 한다. Order에서 주문 정보를 가져와야 하고, Product에서 상품 이름을 가져와야 하고, Member에서 회원 이름과 ID를 가져와야 한다. 이러한 구현 복잡도 문제를 해결하려면 상태 변경을 위한 모델과 조회를 위한 모델을 분리하여 구현할 수 있다. 11.2 CQRS Command Query Responsibility Segregation의 약자로 상태를 변경하는 명령을 위한 모델과 상태를 제공하는 조회를 위한 모델을 분리하는 패턴이다. CQRS는 도메인이 복잡할수록 명령 기능과 조회 기능이 다루는 데이터 범위에 차이가난다. CQRS를 사용하면 각 모델에 맞는 구현 기술을 선택할 수..
[DDD] chapter 10 Chapter 10 10.1 시스템 간 강결합 문제 외부 서비스를 사용할 때 발생할 수 있는 문제점 트랜잭션 처리가 애매해진다. 성능이 비교적 감소한다. (외부 서비스 성능에 직접적인 영향을 받게 된다.) 위의 문제를 해결하는 방법은 이벤트를 사용하는 것이다. 10.2 이벤트 개요 이벤트란? 과거에 벌어진 어떤 것. 사용자가 암호를 변경했을 때 > "암호를 변경했음 이벤트"가 벌어졌다고 할 수 있다. 사용자가 주문을 취소했을 때 > "주문을 취소했음 이벤트"가 벌어졌다고 할 수 있다. 도메인의 상태 변경과 관련된 요구사항들을 이벤트를 통해 구현할 수있다. "주문을 취소할 때 이메일을 보낸다."라는 요구사항에서 "주문을 취소할 때"는 주문이 취소 상태로 바뀌는 것을 의미하므로 "주문 취소됨 이벤트"를 이용..