본문 바로가기

전체 글

소마 마지막 스프린트. 그리고 회고(리뷰는 나중에) 끝! 소마 프로젝트 과정이 끝났다. 결론적으로 우리는 많은 것들을 짧은 시간 안에 만들어 냈다. 1. 데이터 파이프라인(Kafka Event Driven Architecture) 2. github Api Data 수집기 3. 알람 서버 4. 웹 서버 많은 일들이 있었고 이를 행하기 위해서 여러 노력을 했다. 나의 경우엔 CI/CD가 정말 문제였다. Window, Linux가 뒤섞인 배포 환경에 언어까지 JAVA(MVN, Gradle),JS(Nodejs), Python이 뒤 섞인 프로젝트이다 보니 파이프라인 하나를 짜는 것이 모두 새로운 일이 되어 버렸다. 특히 그 안에서 .yml, .json 등으로 만들어진 보안 정보를 대치하고 집어넣는 일이라는 것이 쉬운 일은 아니었다. 그럼에도 아쉬움이 남는 것은 T.. 더보기
심심한 사과와 근황 어... 네... 글을 못 올리고 있다...요... 취업 일정이 바쁘기도 하고... 소마도 열심히 하고 있고요...(마지막 스프린트 진행 중에 있어요...) 학교도 다니고는 있어요... 코테 준비 열심히 하세요... 영어도 열심히 하세요... 학점도 잘 따놓으세요... 그 학점을 왜 못 받았냐고 물어본다면 전 할말이 없어요.(게을러서요?) 코테는... 네... 여러분이라면 저보다 잘 하겠죠? 자존감이 떨어지는 요즘이에요. (그래도 못하는 건 아닌거 같은데, 그래도 막상 치고 나면 합격 소식 들릴 때 까지 시무룩하고... 힘이 없다고 해야하나요...? 뭐 대충 그래요...)(면접 준비 하지 말라는게 아니라(면접도 어렵더라고요...)코테부터 준비하는게 맞는 것 같기도 하고... 여러 생각이 드네요...) 알.. 더보기
5차 스프린트 회고 회고 및 리뷰 사실 일을 별로 하지 않았다. 개강 후에 너무 정신이 없어서 제대로 된 일을 하지 못했다. Spring Security를 처음 만지게 됐다. 정말 세상 근본 없이 진행하다보니 코드가 개판이 되었다. 아주 부끄러운 코드이다. 실제로 깨닫고 행동에 옮기고자 하는 일이 하나 있는데, 이제 학교에 가는 날에는 집으로 출발을 늦게 해야한다는 것이다. 퇴근 시간의 서울 도로는 너무 지옥이라 도저히 안되겠다 라는 것이 내 생각이다. 저번주 학교에 갔을 땐, 북부간선도로에 갇혀서 무려 세시간 반 동안(!!!) 갇혀있었다. 살아남으려고 차선 변경도 하고 온갖 난리를 다 쳐도 어림도 없더라… 인생은 쉽지 않다. 사실 너무 집중을 안 해서(일이 끝나니까) 팀원 들 모두가 지금 소마를 하고 있는지 아닌지 잘 모.. 더보기
4차 스프린트 회고(정말 짧은)(개강 전 마지막) 개강 싫다. 9학점밖에 남지 않았지만 일단 기분이 썩 좋진 않다. Suck에 가깝다. 중간 발표를 진행했다. 잘 된걸까? 질문의 요지는 대충 이랬다. 1. 그래서 정말 필요한 것 맞아? 더보기
3차 스프린트 회고 전반적인 사건들 중간 발표가 일주일 앞으로 다가왔다. 하지만 잦은 아키텍처 변경으로 인해… MVP를 뽑아내지 못했다. 그렇기 때문에 일단 이번 스프린트 까지만 우리의 삶을 조금 더 갈아보기로 했다.(다음엔 안 그럴 것 같진 않다.) 스프린트 목표 Cycle Time을 뽑아내고, 그걸 보여주자. 우리의 기술은 DataPipeline. 물론 UI도 중요하긴 한데, 가장 중요한 것은 데이터를 우리가 얼마나 납득할 수 있을만한 객관성을 가진 채로 뽑아내고 보여 주는가? 였다. 당초 계획은 지라, 젠킨스 등에서 webhook을 받고, 이걸 한꺼번에 처리하자~ 였는데, 일단 모든 곳에서 들어오는 서로 다른 방식의 데이터를 한꺼번에 처리하자! 라는 것은 개발에 소요될 우리의 삶이 너무나 불쌍해 보였고, 된다고 하더라.. 더보기
Kafka와 Azure에서의 사용(Event Hub, Event Grid) 드디어 내가 좀 아는 것에 대해 이야기를 할 수 있는 기회가 왔다. 그 전 포스팅은... 정리가 안 되어있는 느낌일 것이다. 당연하다. 내가 직접 쓰지는 않거든... 더 공부해서 오도록 하겠다. 알게 된 + 공부하게 된 계기 일단 우리 프로젝트에 기술적인 제목을 붙이자면 Webhook BigData Pipeling 정도가 되겠다. 데이터를 수집하는 입장에서는 수 많은 곳에서 날라오는 Webhook들을 최대한 빠르고 오류 없이 DataWareHouse에 집어 넣는 것이 관건. 일반적으로 생각을 해보자고, 서버리스인 Azure Function는 각 이벤트에 대한 Webhook이 올 때 마다 서버가 생성되어 데이터를 처리한다. 이 것들을 좀 과장해서 OLTP DataBase / OLAP DataWarehous.. 더보기
Data Warehouse Data Warehouse란? 다양한 소스에서 얻은 대량의 데이터를 연결, 통합하는 디지털 스토리지 시스템. 그냥 마구 넣은 데이터를 분석하고 보고하는데 사용된다. 우리 시스템의 예를 들어보자. 우리는 정말 다양한 곳의 데이터를 수집한다. github/jira/github action 등등 물론 소스가 다양한 것도 있는데, github 내부에서 오는 친구들만 해도 너무 다양해서 바로바로 분석하는 것이 힘들다. CRUD작업에 특화된 OLTP 위주의 시스템에서는 비용도 너무 많이 들고, 시간도 너무 많이 든다. NoSQL을 사용하고자 하니, 테이블을 설계할 수도 없고, 분석을 진행하기에도 비효율적이다. 그렇기 때문에 OLAP(온라인 분석 처리) DataBase가 만들어졌다. 그리고 이를 데이터 웨어하우스로 .. 더보기
디자인 패턴(생성패턴) 소프트웨어 디자인 패턴? 소프트웨어 설계 및 코딩에 있어 특정 문맥에서 공통적으로 발생하는 문제에 대해 재사용 가능한 해결책이다. 다양한 상황에 맞게 사용될 수 있는 서술/템플릿 같은 것이라고 생각하면 편할 것 같다. 개발자 간의 공통 언어로써, 소프트웨어를 설계하고 문제를 해결해 나가는 과정에서 사용되기 좋은 방법론들을 모아 놓은 것으로, 이해하고 있어야 한다. 분류는 생성 패턴, 구조 패턴, 행동 패턴으로 나뉜다. 생성 패턴(인스턴스를 만드는 절차를 추상화 하는 패턴) 추상 팩토리 1. 다양한 구성 요소 별로 ‘객체의 집합’을 생성해야 할 때 유용하다. 2. 이 패턴을 사용하여 상황에 알맞은 객체를 생성할 수 있다. 3. 쉽게 말하자면 서로 관련이 있는 객체들을 통째로 묶어서 팩토리 클래스로 만들고,.. 더보기