기존에 JSON을 객체로 변경하면서 custom 하게 deserialize/serialize 할 일이 있어서 Object Mapper를 빈 등록하여 사용하였습니다. 이렇게 작성을 하고 나니 Object Mapper가 어떻게 동작하는지 꼼꼼하게 알 필요가 있을 것 같아 해당 내용을 정리하려고 합니다. Object Mapper 란? JSON 컨텐츠를 Java 객체로 deserialization 하거나 Java 객체를 JSON으로 serialization 할 때 사용하는 Jackson 라이브러리의 클래스입니다. Jackson 라이브러리는 다음과 같이 의존성 추가할 수 있습니다. com.fasterxml.jackson.core jackson-databind 2.9.4 Java 객체를 JSON으로 serializ..
백엔드 서비스를 개발하면서 LocalDateTime, LocalDate와 같은 타입을 통해 날짜 처리를 하고 해당 데이터를 Request, Response로 전달해야할 일이 있었습니다. 이때 타입 변환을 어떻게 하면 좋을지에 대해 고민한 내용을 정리해보려고 합니다. 또한 이후 클라이언트와의 논의에서 타임존을 처리한 방식까지 같이 정리해볼까 합니다. 먼저 상황은 다음과 같습니다. 클라이언트에서는 요청, 응답 시 데이터 형태는 ```yyyy-MM-dd HH:mm:ss``` 포맷의 string으로 전달합니다. 서버의 Request, Response 모델에서는 해당 데이터를 LocalDateTime 타입으로 전달받습니다. 이때 별도 설정을 하지 않는 경우에는 JSON parse error: Cannot dese..
이번에 챌린지 업무로 소캣 통신 기반 채팅 서버를 개발하게 되었습니다. 소캣 통신을 구현하는 여러가지 방법이 있겠지만 우선 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)에서 개발했습니다. 링크드인에서 카프카를 적용한 전체적인 그림을 보면 다음과 같습니다. 카프카를 적용함으로써 모든 이벤트/데이터의 흐름을 중..
업무 중 파일 업로드를 실제 서버로 파일을 보내는 대신 클라이언트에서 처리하는 방향으로 변경하면서 PreSignedUrl을 사용하게 되어 관련 내용을 정리하려고 합니다. 전 회사에서 해당 방식을 사용한다는 것은 알고 있었지만 어떻게 동작하는지 구체적으로 관심가지지 않아서 몰랐던 내용을 직접 해보면서 정리하였습니다. 😅 1. AWS IAM Role 에 S3 업로드 권한 부여 S3에 파일을 업로드 및 다운로드하기 위해서는 S3에 대한 권한을 가지고 있어야 합니다. 저는 개인적으로 사용하던 기존 User에 S3FullAccess 권한을 부여했습니다. (local AWS CLI를 통해 접근하는 User 또는 EC2에게 주어지는 Role에 권한을 추가해주면 됩니다.) * 사용자를 새로 생성한 경우 CLI 에서 접..
- Total
- Today
- Yesterday
- array
- Combination
- DFS
- 소수
- Dynamic Programming
- java
- 프로그래머스
- Algorithm
- Baekjoon
- BFS
- sort
- CodeDeploy
- AWS
- programmers
- ECR
- EC2
- SWIFT
- CodePipeline
- permutation
- ionic
- map
- 조합
- 순열
- 에라토스테네스의 체
- cloudfront
- spring
- string
- CodeCommit
- search
- 수학
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |