회사에서 프로젝트 작업 중 갑자기 테이블들이 수정되면서 대부분의 테이블에 생성자, 생성일시, 수정자, 수정일시가 추가되었습니다. 로그인한 사용자의 Id를 기반으로 데이터를 insert, update, delete할 때 해당 내용들을 추가해줘야 했고 이를 위해 Interceptor를 구현하기로 했습니다. CommonAuditing 추상 클래스 생성 후 필요한 Model 들에서 이를 상속받아 추가하는 방법도 고민했지만 이미 어느정도 작업이 진행되어 있어서 전체 DTO, Domain, Model을 수정하는 것은 무리가 있다고 생각했고 그나마 나은 방법으로 Mapper와 xml 파일만 수정할 수 있는 방법을 고민하여 Interceptor를 구현하는 것으로 결정했습니다. 먼저 다음과 같이 Interceptor를 ..
항해플러스 3기를 신청하게 되었다. 오늘 첫날이라 시작하는 마음을 적어보고자 한다. 개발자가 된 계기 대부분의 대한민국 고등학생들과 동일하게 나 또한 내가 좋아하는 것을 알지 못하고 그저 성적에 맞춰 대학을 진학했다. 대학에 가서 처음 배운 C 언어... 컴퓨터 관련 학과인지도 모르고 들어왔다가 컴퓨터 공학, OS 수업을 들으면서 이길은 내 길이 아니구나... 어떻게든 졸업만하자 생각했었다. 그렇게 무난한 학교 생활을 하다가 우연히 사물 인터넷이라는 수업을 듣게 되었다. 그동안 알 수 없는 코드들을 작성하고 그것이 무슨 동작을 어떻게 하는지 어떻게 활용할 수 있을지 알 수 없었는데 사물 인터넷이라는 수업을 통해 내가 만든 코드가 일상 생활의 물건을 동작 시킬 수 있구나를 깨닫게 되었다. 생각보다 더 기분..
최근 회사에서 의도치 않게 Node + Express + TypeScript 환경에서 개발을 진행하고 있습니다...ㅠㅠ 매번 하던 것들이 아니라 여러가지 어려움도 많고 이해가 되지 않는 부분이 많지만... 저의 부족함을 매일 느끼며 그와중에 조금이나마 알게된 내용들을 정리해볼까 합니다. TypeORM이란? TypeORM은 TypeScript와 JavaScript에서 사용할 수 있는 데이터베이스 ORM(Object-Relational Mapping) 라이브러리입니다. ORM은 객체 지향 프로그래밍 언어와 관계형 데이터베이스 간의 데이터를 변환하고 연결하는 기술을 의미합니다. TypeORM은 이러한 변환 및 연결 작업을 간편하게 수행하도록 도와주는 도구 중 하나입니다. TypeORM은 다양한 데이터베이스 시..
이번에 챌린지 업무로 소캣 통신 기반 채팅 서버를 개발하게 되었습니다. 소캣 통신을 구현하는 여러가지 방법이 있겠지만 우선 node 진영에서 가장 많이 사용하는 Socket.io를 통해 개발을 진행하게 되었습니다. (Java + Spring 만 하고 있었는데... 어쩌다...) 먼저 NodeJS와 Express를 활용한 프로젝트를 생성해보겠습니다. 1. node 설치하고 실행 먼저 빈 디렉토리에 다음과 같이 node 프로젝트를 시작해줍니다. 여기서는 이미 node와 npm이 설치되어 있다고 가정하겠습니다. (node 설치와 관련된 내용은 다른 글들을 참고해주세요...!) 실행 후 해당 디렉토리에 생성된 package.json 을 살펴보면 다음과 같습니다. { "name": "chat-server", "v..
최근 회사에서 서비스 개발을 진행하면서 이벤트 브로커를 사용해야할 일이 생겨서 카프카에 대해 알아보게 되었습니다. 사실 채팅을 구현하면서 Redis와 Kafka 사이 고민을 하고 각 장단점과 차이를 알아보고자 해당 내용을 공부하고 정리하게 되었습니다. 처음 접하는 구조와 생소한 많은 용어 때문에 여전히 혼란스럽지만... 우선 이해한 내용들을 바탕으로 정리를 해보려고 합니다. 🙏 Kafka란? Kafka란 파이프라인, 스트리밍 분석, 데이터 통합 및 미션 크리티컬 애플리케이션을 위해 설계된 고성능 분산 이벤트 스트리밍 플랫폼입니다. 카프카는 링크드인(Linked-In)에서 개발했습니다. 링크드인에서 카프카를 적용한 전체적인 그림을 보면 다음과 같습니다. 카프카를 적용함으로써 모든 이벤트/데이터의 흐름을 중..
- Total
- Today
- Yesterday
- programmers
- Baekjoon
- 조합
- CodePipeline
- BFS
- 순열
- 소수
- AWS
- string
- spring
- map
- 에라토스테네스의 체
- cloudfront
- ECR
- Dynamic Programming
- ionic
- Combination
- 수학
- SWIFT
- search
- Algorithm
- sort
- 프로그래머스
- CodeCommit
- CodeDeploy
- permutation
- EC2
- array
- DFS
- java
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |