- Today
- Total
목록잡동사니 (9)
개발하는 고라니
원체 예술쪽엔 재능과 흥미가 없던 터라, 중학생 이후로 붓을 잡아본적이 없었다. 일과 운동 그리고 집만 반복하는 생활을 하다보니 새로운 사람들을 만나 환기시킬 기회조차 점점 줄어들고 있다. 그러다 우연히 아트팅이라는 활동을 접하게 되어 신청하게 되었다. 이름이 특이한데, 간단히 와인과 스낵을 먹으면서, 그림을 그리며 새로운 사람들과 커넥팅하여 짧지만 반가운 만남을 할 수 있는 활동이다. 새로운 사람들과 만나는 것이 굉장히 낯설을 수 있는데, 진행해주시는 두 분이 활발하셔서 침묵이 온적이 없었던 것 같다. 소개시간 및 아이스 브레이킹 우선 최소 6명 이상이 모여야 진행할 수 있으며, 최대 8명 까지 진행한다고 한다. 여기선 이름을 사용하지 않고 각자 색깔을 하나씩 골라 부르는데, 나는 파랑을 골랐다. 그리..
specification] MySql - 8.0.28 gradle - 7.4 flyway - 8.0.0 서론 개발을 하다보면, Database에 생성해놓은 테이블의 컬럼명이 수정된다던지, 컬럼의 타입이 변경되거나, 컬럼이 추가/삭제되는 일이 빈번하진 않지만 일어난다. 하지만 시간이 지나고, 우리가 이런 수정이 언제? 왜 생겼지?는 왠만해서 알 수 없다. 우리의 코드 또한 이러한 이유를 포함하여 VCS(Version Control System, ex.git) 을 사용하는 것이 아닌가. Database의 변경이력을 파일로써 관리해보도록 하자. 본론 본 글에서는 Flyway라는 '오픈소스 데이터 마이그레이션' 툴을 사용한다. 사용하는 방법은 여러가지가 있지만. build.gradle.kts에 작성해서 사용해보..
들어가며 최근 새로운 프로젝트를 시작하였는데, 이 도메인은 기존 팀에서 진행하던 도메인과 별개의 도메인으로 판단되어, 새 코드 레포지토리가 필요했다. 마침 최범균님의 '도메인 주도 개발 시작하기' 책으로 스터디를 했고, 기존에 MVC 패턴으로만 개발하면서 느낀점들을 경험하고 싶지 않아 다른 아키텍쳐를 도입하고자 하였다. 사실 DDD를 공부하기 전, 'Clean Architecture' 스터디를 먼저 했었다. 정말 어렵다. 초보자가 단숨에 하기에 벅찬 내용이고, 이걸 도입했다가는 아키텍쳐에 매몰되어 개발에 차질이 있을 것 같았다. 그래서 클린 아키텍쳐는 좀 더 성장해서 써보기로 했다. 그래서 고른 것이 DDD 이다. MVC 에서 아키텍쳐를 변경하게된 이유 1. 유지보수가 힘들다. 가장 큰 이유이다. MVC..
이번 한 주는 특별히 다른 점은 없었으나, 유난히 시간이 빨리가버린 그리고 정신없이 흘러간 한 주가 아니었나 싶다. 아마도 제목과 같이 서비스 장애를 겪었고, 갖은 문제가 발생했기 때문이라 생각한다. 사실 어디부터가 장애고, 어디까지가 장애라고 해야하는지 모르겠지만. 이미 배포 중인 서비스가 예기치 못한 이슈를 겪으면 장애라고 생각한다. 그리고 내가 겪은 현상은 확실히 서비스 장애이다 :). 우선, 물품 별 배송정보를 토대로 상태를 업데이트 하며 고객에게 톡이 전송되는 프로세스가 있는데, 기존에는 메뉴얼로 작업되고 있었다. 이를 최근 자동화 로직을 설계하고, 나름대로 검증 후 배포를 내보냈다. 3주 정도는 문제없이 동작하는 줄 알았는데, 금주 일부 고객의 문의가 들어왔다. 30분 마다 동일한 톡이 반복적..
21년 10월 말, 27살의 마무리를 준비할 쯤 첫 취준 기간이 끝났다. 전자공학을 전공했고, 1학년 때 C 언어의 벽을 느끼며 코딩은 못하겠다라고 생각했었고, 이후로도 못했다. 어영부영 지내다 군복무를 하고 돌아와서 공부를 열심히 해봐야겠다고 다짐하고 학교 공부에만 매진했다. 그거면 되는 줄 알았으나, 절대 그렇지 않았다. 모든 것을 새로 공부해야했고, 어디서부터 어떻게 시작해야할지 막막했다. 이를 느꼈을 때가 대학교 4학년 1학기였다. 당시는 개발이 뭔지도 몰랐고, 할 줄 아는 것은 자바,,,C,,,자료구조 정도였다. 개발이 하고 싶어서 유튜브와 책을 뒤지며 내가 무엇을 해야하는지 찾아다녔고, 뉴렉쳐라는 유튜브를 접하게 되었다. 이때 굉장히 도움이 많이 되었다. 나름 공부를 하고 지냈고, 막학기에는 ..
저번 달부터 프로그래머스에서 진행한 월코챌 시즌3. 총 8문제중 4문제 이상 풀면 이벤트에 응모할 수 있었다. 가까스로 4문제를 풀고 늘 그렇듯 별 기대없이 이벤트에 응모했다. 며칠뒤 뜻밖의 이메일이 한통 날아왔다. 평소 프로그래머스의 굿즈가 탐났었고 굿즈를 희망했는데 해피해킹2 ?? 처음 듣는 거였다. 그래서 당첨이 됬음에도 아쉬운 마음이 있었으나, 찾아보니 키보드였고, 그 중에서도 무접점 키보드였던 것이다. 근데 가격이 너무나도 사악했다. 이런 키보드를 내가 당첨되다니 나에게 과분한 키보드라고 생각했다. 그래도 기대되는 마음은 감출 수 없었다. 태어나서 처음으로 무언가에 당첨되었다는 사실에 그렇게 오늘 키보드를 받았는데 해피해킹 프로2와 달리 해피해킹 하이브리드 타입-s 라는 모델을 받았다. 이 제품..
21-02-18 ~ 21-07-13 불과 4일전, 7월 13일부로 올해 2월 18일부터 진행된 뉴렉쌤의 국비교육과정의 마침표를 찍었다. 국비교육과정은 사실 제대로 운영되기 힘든 것 같다. 길어야 6개월의 과정에 웹 개발의 상당부분을 배우고, 평가하고 프로젝트를 해야하니 가르치는 입장에서도, 배우는 입장에서도 서로 힘이 빠지는 일이 생긴다. 6개월도 짧은 기간인데, 이번 교육 과정은 5개월이었다. 1달 차이가 뭐 얼마나 크겠냐만은, 실제로는 엄청난 차이라고 생각된다. 예를 들어 스프링 시큐리티를 배울 때 깊게 파고들어 배우는 거랑, 동작만 가능하게 해놓는 데까지 배우는거랑 천지차이라고 생각된다. 1달이라는 시간이 더 있었다면 조금더 깊이있는 공부를 할 수 있었을 텐데 그 점이 매우 아쉽게 느껴진다. 그렇다..
B는 C를 사용하므로 C는 B의 부품 A는 B를 사용하므로 B는 A의 부품 Frame은 A를 사용하므로 Frame의 부품 즉, Dependency는 상대적이다. 왼쪽, 중앙 방법은 부픔(A)를 뺏다 꼇다 할 수 있는 방법이 아니므로 DI가 아니다. 오른쪽은 Setter, Constructor 로 Injection를 하는 방법이다. 스프링이 DI를 해준다. 직접 관리하는 것보다 속도는 느릴 수 있으나 변경이 유연하다 IoC Container Dependency Injection의 방법 생성자 Injection @Service public class NoticeServiceImpl implements NoticeService{ private final NoticeRepository repository; //..