전체 글 27

Event Sourcing(이벤트 소싱)에 대하여

들어가며 it 업계의 막내들로서 함께 재밌게 스터디하고있는 친구들한테 접하게 된 키워드인데 생소한 내용이라 개념적으로나마 정리해보려고합니다. 차후에 팀에서 관련된 작업을 맡게되거나 도입을 고려할 때 조금 더 제가 쓸모있어지길 바라며 ㅎㅎ 개요 이벤트 소싱은 상태에 대한 변경 사항을 모두 저장하는 개발 패턴입니다. 이게 무슨 의미냐면 가령 서버개발을 할 때 DB에 연산이 된 결과값을 저장합니다. 하지만 이벤트 소싱은 순차적으로 발생하는 이벤트를 모두 저장합니다. 리팩터링 등의 유명한 책을 쓰신 마틴 파울러는 "애플리케이션의 모든 상태를 순서에 따라 이벤트로 보관"이라고 정의를 내리셨더라구요. 그럼 이벤트 소싱은 왜 쓸까요? 사용 목적 모든 갱신 이력 데이터를 저장해 해당 데이터를 통해 과서 상태로 회귀(재..

기술 노트 2022.10.25

Elixir에서 ex와 exs 확장자의 차이점은 무엇일까?

더보기 좀 더 구체적인 세부 정보를 위해 .ex vs .exs 파일을 사용해야 하는 경우에 대해 알아본 몇 가지 패턴 또는 경험 규칙이 있습니다. 거의 모든 코드가 lib(또는 이전 Phoenix 웹앱인 경우 웹)과 같이 응용 프로그램의 '라이브러리' 디렉터리 트리에 있는 .ex 파일에 들어갑니다. 코드는 응용 프로그램의 다른 위치 또는 iex에서 호출할 수 있습니다(공용 함수 또는 매크로를 정의하는 경우). 이 값이 기본값입니다. .ex와 .ex 사이에서 결정할 때 가장 중요하게 고려해야 할 사항은 이 코드를 어디에서(그리고 언제) 호출할 것인가입니다. 애플리케이션 자체에서 확인할 수 있습니다. iex(예: iex -S 혼합) – .ex, 코드가 응용 프로그램에서 사용되는 경우(예: 특정 버그 또는 기..

카테고리 없음 2022.02.13

슬랙(Slack)과 깃허브(GitHub) 연동해 알람받기

팀 프로젝트를 하며 공동으로 작업하는 레포지토리의 변경사항이 생기면 슬랙 내에 지정 채널로으로 알람이 올 수 있도록 하고 싶었습니다. 알고리즘 스터디와 팀플을 할 때 디스코드로 연동해봤는데 방법이 비슷하고 간단해 정리해보려고 합니다. 일단 알림을 받을 채널을 생성합니다. 이후에 좌측 상단에 있는 채널 명을 클릭하면 상세보기 모달이 나옵니다. 그 다음 통합 탭에 들어가 앱 추가 버튼을 누르면 됩니다. 그다음 github를 검색해 앱을 추가합니다. 그럼 이렇게 해당 채널에 알림이 오는데 구독할 레포지토리를 메시지 입력 창을 통해 입력해주면 됩니다. private 레포지토리는 viewer 이상의 권한이 필요하기 때문에 /github signin 명령어를 통해 로그인 후 진행하면 됩니다. 일단 테스트를 위해 기..

카테고리 없음 2021.10.11

[당근마켓] 플랫폼 서버 개발 (채용연계형 인턴) 과제전형 후기

과제 전 당근마켓 공고를 보고 지원에 앞서 이왕 이렇게 된거 Golang을 공부해보자는 마음으로 추석 + 과제 테스트 전까지 달려봤다! 먼저 Golang의 문법을 경험해왔던 다른 언어(Java, JavaScript, C/C#/C++, Python ...) 등과 비교하며 차이점을 중심으로 공부했다! 그리고 공식문서를 통해 자주쓰이고 유용한 메서드 외우기! 고루틴과 함께하는 채널 개념은 익숙하면서도 신기했다. 또 개발에 앞서 필수조건인 예외처리와 Golang 관련 아키텍처 설계 방법론, 패키지 관리 시스템 등도 이것저것 찾아보면서 실습해봤다. Golang의 Web Framework인 Echo로 웹 서버를 만들어보고 DB와 도커 연동을 해보며 과제준비는 마쳤다! 과제에 대하여 유출의 위험이 있어 자세히는 언급..

후기 2021.10.01

[네이버 부스트캠프] 웹·모바일 6기 챌린지 후기

1주 차 기대 반 걱정 반으로 시작한 1주 차였습니다. 😅 부스트 캠프에서의 소꿉친구들을 만나 성장을 도모할 수 있는 좋은 기회였습니다. ㅎㅎ 주어진 가이드라인으로 학습하며 미션을 해결해나가며 부스트캠프에서의 일과에 적응해나가기 시작했던 때인 것 같습니다. 아무래도 자바스크립트가 처음이다 보니 첫 주차는 다른 분들보다 시간을 좀 더 들였던 것 같습니다. 문법공부+과제 관련 주제 공부+미션 수행을 7시 전까지 마감하느라 힘들었지만 그래 도! 1주 차는 제 때 자고 제 때 일어났습니다! 😚 2주 차 2주 차부터는 기본 4시간 잤던 거 같네요. 릴레이 프로젝트는 하드 캐리로 마무리! 그리고 꿀 같은 주말 휴식! 자바스크립트는 1주 동안 구르니 어느 정도 익숙해졌습니다. 다만 제가 전공자도 아니고 그렇다고 비전..

후기 2021.08.20

[네이버 부스트캠프] 웹·모바일 2차 코딩테스트 최종 결과

기다리며 혹시나 조기 발표는 하지 않을까 며칠 전부터 기다렸던 것 같습니다 같이 시험을 치뤘던 주변 사람들이랑 목 빠지게 기다렸습니다 😢 면접 준비와 근로를 하면서 바쁘게 일주일을 보냈습니다 결과 후기 군대에선 실컷 놀다가 전역하고 1년 동안 적성 탐색과 개발 분야를 선택했고 가까운 주변 사람들과 프로젝트를 하면서 바빴지만 행복하게 보냈습니다 학업을 본격적으로 시작하고 조그마한 학교 내에서도 실력이 뛰어난 고수들, 개발자로서 성장을 도와준 은인들을 많이 만났었는데 부스트 캠프에선 얼마나 다양하고 특별한 사람들을 만날 수 있을지 설렙니다 앞으로 과정은 챌린지와 멤버십 더 나아가면 채용연계까지입니다 1년간 쉼 없이 달렸었는데 1년 더 열심히 달려보겠습니다 오늘의 집 채용과정도 마지막을 남기고 있는데, 좋은 ..

후기 2021.07.13

CS 면접 부시기 - JAVA plus

java의 대표 collection에는 어떤 것들이 있나요? 더보기 자바의 대표 컬렉션에는 list, map, set, stack, queue와 같은 것들이 있습니다. 이 추상화된 컬렉션 인터페이스 아래, 특정한 기법으로 구현된 자료구조가 들어갑니다. 예를들어, List 라는 인터페이스에는 구현방법에 따라 ArrayList가 들어갈 수도, LinkedList가 들어갈 수도 있습니다. List에 대해 설명해주세요 더보기 리스트는 배열과 비슷한 자바의 자료형으로 배열보다 편리한 기능을 많이 가지고 있습니다. List에는 대표적으로 ArrayList와 LinkedList가 있습니다. ArrayList는 배열로 구현된 List입니다. 배열과 같은 자료구조이기 때문에, 리스트의 연산 수행시간 속도는 배열과 같습니..