API를 개발하다가 @RequestParam과 @RequestPart 차이가 갑자기 궁금하더라고요. 그래서 애노테이션 소스 코드를 열어봤는데 소스가 되게 비슷하더라고요..?! 🤔 이거 찾아봐야겠다 하는 생각이 들어서 찾아본 김에 정리해서 공유드려요 😊 1. 애노테이션 소스 코드 분석먼저 애노테이션 소스 코드 분석을 해봤어요. 소스코드가 진짜 비슷하게 생겼거든요. 아마 이거 먼저 보시면 '엇..? 이게 뭐지?' 하는 생각이 드실 수도 있어요. 참고로, 공통 메타 애노테이션인 @Target, @Retention, @Documented 설명은 생략하고 소스만 분석했어요.1.1. @RequestPart 소스 코드@Target({ElementType.PARAMETER})@Retention(RetentionPo..
최근 Spring WebFlux, Kotlin, MongoDB를 사용해 개발하다가 네이밍 관련 문제를 만나게 되었어요..!!JSON 직렬화/역직렬화와 MongoDB 필드 매핑에 대한 내용을 포함해 어떻게 네이밍을 설정했는지 공유드릴게요 🤗 1. HTTP 요청/응답을 Snake Case로 설정하기Spring Boot에서 DTO(JSON) 필드 이름을 스네이크 케이스로 직렬화/역직렬화하기 위해 다음과 같이 application.yml에 Jackson의 프로퍼티 네이밍 전략을 설정할 수 있습니다.jackson: property-naming-strategy: SNAKE_CASE 이 설정은 클라이언트와 서버 간의 데이터 교환에서 필드 이름 변환을 도와줍니다. 예를 들어, 클라이언트가 { "member_id..
유명한 IT 동아리 정말 많잖아요. 저도 몇 번 참여해 봤는데, 그때의 열정을 또 한 번 느껴보고 싶더라고요. 🔥🔥그래서 직장인이 가입할 수 있는 IT 동아리 매번 찾아보다가 블로그에 정리해 봤어요. 🥰네 제가 보려고 했어요 ㅎㅎ 1. NEXTERS (넥스터즈)IT 개발자와 디자이너들을 위한 동아리입니다. 개발자와 디자이너가 자유롭게 협업하며 다채로운 주제의 IT 프로젝트를 진행하고 있습니다. 2012년부터 현재까지 약 700명의 회원 네트워크를 구축해 왔으며, 다양한 분야의 학생 및 실무자들이 활동하고 있습니다.'24년 모집일 : 05.10 - 05.19 / 11.11 - 11.20'25년 예상 모집일 : 5월 / 11월모집 직군 : Designer, Android, iOS, Server, Web..
Spring WebFlux 프로젝트에서 MongoDB 설정을 하는 중 어려움을 좀 겪었어요 😂 이 게시글을 보시는 분들은 조금 더 쉽게 설정하실 수 있도록 설정 방법에 대해 정리해서 공유해보려고 해요. Spring Webflux 프로젝트이기는 하나 Spring Data MongoDB를 사용하기 때문에 어떤 Spring 프로젝트이던 방법은 비슷할 것 같아요. Gradle 설정먼저 Spring Data MongoDB를 사용하기 위해 Dependency에 다음 내용을 추가합니다. 참고로 저는 Gradle이 kotlin으로 되어 있어요.implementation("org.springframework.boot:spring-boot-starter-data-mongodb-reactive") yaml 설정그다음 ap..
docker-compose를 사용해서 MongoDB 를 설치해도 보려고 해요! 프로젝트 진행 중에 약간의 어려움을 겪어서.. 다른 분들은 겪지 않았으면 하는 마음에 정리하는 것도 있어요. MongoDB 설치docker-compose.yml을 다음과 같이 작성해주세요. 최신 버전의 이미지를 받아와서 설정을 하는 것이고, environment에는 DB 생성할 때 사용할 root 계정에 대한 설정이에요.version: '3.8'services: mongodb: image: mongo:latest container_name: mongodb ports: - "27017:27017" environment: MONGO_INITDB_ROOT_USERNAME: master ..
"MongoDB는 NoSQL 데이터베이스 중 하나이다" 말고는 잘 모르는 것 같아서 MongoDB에 대해 정리해보았어요. MongoDB란MongoDB는 문서 지향(Document-Oriented) 데이터베이스로, JSON과 유사한 BSON(Binary JSON) 형식의 문서를 저장하고 관리해요. MongoDB는 테이블과 스키마에 기반한 전통적인 관계형 데이터베이스와 다르게 유연한 데이터 모델을 제공하여 다양한 형태의 데이터를 효율적으로 처리할 수 있게 해줘요. 주요 특징유연한 스키마스키마리스(Schema-less) 구조 지원각 문서(레코드)가 서로 다른 필드와 구조를 가질 수 있음데이터 모델의 유연한 변경 및 확장 가능고성능과 확장성수평적 스케일링 지원샤딩(Sharding)을 통해 대용량의 데이터를 효율..
Logstash Pipeline-to-Pipeline Communucation을 사용하면 길이가 너무 긴 설정 파일을 줄일 수 있지 않을까 싶어 사용해 봤어요. 그리고 설정을 다른 input에서 재사용하기도 좋을 것 같아서..! 한 번 사용해 보았습니다. 🥰00. 실습 환경Windows 10Elasticsearch 7.10.2Logstash 7.10.2Kibana 7.10.2Filebeat 7.10.2Git BashElasticsearch와 Kibana가 실행된 상태로 진행했어요. Elasticsearch와 Kibana 설치 및 실행에 대한 내용은 여기에 포함되어 있지 않아요. 01. 실습 파일 준비하기실습을 진행하기 위해 임의로 로그 파일을 생성했어요.access.logerror.logtransact..
OpenDistro가 아닌 OpenSearch를 쓰는 게 맞지만..! OpenDistro를 Elastic Stack에 적용해 볼 일이 있어서 사용하는 김에 내용 정리했어요. 사실 오래전에 Github에 대충 정리해 놓고 이제야 올리네요.. 😂 OpenDistro는 Elasticsearch와 Kibana를 위한 다양한 기능을 제공하고 있습니다.그 중 주요 기능에 대해서 요약하여 설명드리겠습니다.Security : Elasticsearch와 Kibana의 보안을 강화하는 기능 제공Alerting : Elasticsearch에서 실시간으로 데이터를 감지하고 알림을 생성하는 기능 제공Anomaly Detection : Elaticsearch에서 비정상적인 데이터 패턴을 감지하여 이상 징후를 식별하는 기능 제공..