[컨퍼런스] AI Summit Seoul 2026 후기

AI Summit Seoul & Expo 20262026년 8월 20일 AI Summit Seoul에 다녀왔다. 요즘 AI가 계속 발전하고 있음을 뼈져리게 느끼고 있고.. 기업에서는 어떤 방법으로 AI를 도입하고 활용하고 있는지, 어떤 솔루션을 만들 수 있고 어떻게 AI를 활용했는지 확인하고 싶어 방문하게 되었다.오후 12시쯤 전시장에 도착했는데, 입구는 한산한? 편이였고, 당연히 이미 사람들이 입장해있기에 행사장 내부는 복잡했다.SEAGATE미국의 대표적인 글로벌 데이터 저장 장치 전문 기업입구에서 입장하자마자 바로 보였던건 파트너사인 SEAGATE였다. 설문조사를 하면 우리 기업의 스토리지 전략에 대해 진단해볼 수 있었고 보답으로 텀블러도 받을 수 있다..ㅎ Notion협업 소프트웨어 및 생산성 툴 ..

일상

어? 이제 RestTemplate은 Spring에서 권장하지 않는다구?

2026년 7월 15일에 작성되었고, 블로그를 이전하며 옮겨온 포스트입니다.여기에서 원본을 확인할 수 있습니다.들어가며얼마 전에 Spring Boot 프로젝트에서 외부 API를 RestTemplate 방식으로 쓰려고 찾아보다가 Spring 공식 문서에서 아래 내용을 발견했다.As of Spring Framework 7.0, RestTemplate is deprecated in favor of RestClient and will be removed in a future version, please use the "Migrating to RestClient" guide. For asynchronous and streaming scenarios, consider the reactive WebClient.→ S..

Backend/Java

서비스에 AI 붙이기: Spring AI + Ollama + Function Calling

2026년 3월 15일에 작성되었고, 블로그를 이전하며 옮겨온 포스트입니다.여기에서 원본을 확인할 수 있습니다.프로젝트를 만드는 데에 AI 사용은 이제 선택이 아닌 필수라고 생각한다. 그래서 프로젝트에 AI를 어디에 사용할 것인지에 대해서는 생각해둔 부분은 많지만 막상 구현을 해보려니 어디서부터 시작해야 할지 방향이 잡히지 않는 부분이 많아 프로젝트에 사용하기 전에 공부를 해보기로 생각했다.원래 생각했던 방식공부를 하기 전, 원래 생각했던 방식은 아래와 같다.GPT-4, GPT-5 등과 같은 모델을 사용할 수 있는 OpenAI API 사용하기Spring Boot에서 API 요청이 때, 서비스에 맞는 프롬프트와 데이터를 텍스트 형식으로 제공생성된 답변을 ResponseAI를 사용할 수 있는 방식들검색 증강..

Backend/Java

(Spring Boot) Elasticsearch를 활용해 1,000만 개 데이터에서의 검색 속도 개선해보기

2026년 1월 3일에 작성되었고, 블로그를 이전하며 옮겨온 포스트입니다.여기에서 원본을 확인할 수 있습니다.들어가며이 글에서는 Spring Boot, MariaDB, Elasticsearch를 활용해 1,000만 건의 데이터를 검색하는 과정을 다룰 예정이다. 기존 JPA LIKE 검색 방식과 ES를 도입한 방식을 비교하며 대규모 데이터의 검색 속도를 개선하는 방법에 대해 살펴보겠다.Elasticsearch란?Elasticsearch는 Apache Lucene 기반의 오픈소스, 분산, RESTful 검색 엔진이다. 대량의 데이터를 실시간에 가까운 속도로 검색하고 분석할 수 있다.특징Inverted Index“The quick brown fox jumps over the” 라는 문장을 하나의 열로 저장하는..

Backend/Java

AWS 탈탈 털리고, Amazon Lightsail을 이용해 안전하게 파일 업로드 해보기 (Spring Boot)

2025년 12월 24일에 작성되었고, 블로그를 이전하며 옮겨온 포스트입니다.여기에서 원본을 확인할 수 있습니다.얼마 전, AWS에서 보내주는 경고 이메일을 열심히 무시하다가 계정이 잠겼다는 이메일을 보고 후다닥 AWS Console로 들어가 보았는데, 엄청난 과금이 되고 있다는 것을 발견했다.. 계정 자체가 털린 것은 아니지만, 프로젝트를 배포하는 과정에서 흘린 콘솔 액세스 키가 탈취되어 액세스 키를 활용해 다른 사람이 계정의 모든 지역에 (고가의) 인스턴스를 무작위로 생성해 과금을 유발하고 있었던 것이였다.. (다행히 킹왕짱 AWS 측에서 요금 조정을 해줌)액세스 키를 왜 발급했었냐면,,단지, 프로젝트의 기능 중 하나인 프로필 사진 업로드 기능을 구현하는데, Amazon S3 서비스를 이용하려고 액세..

Backend/Java

Java Spring Boot에서 템플릿을 설정하고 이메일 발송하기

2025년 11월 27일에 작성되었고, 블로그를 이전하며 옮겨온 포스트입니다.여기에서 원본을 확인할 수 있습니다.Gmail 설정하기만약 이미 2단게 인증 설정을 완료했고, 앱 비밀번호를 발급 받았다면 3단계로 건너뛰면 된다.1. 2단계 인증 설정Gmail을 통해 메일을 발송하려면, 계정의 2단계 인증이 활성화 상태여야 한다. Google 계정 페이지의 좌측 사이드 바에서 보안 및 로그인 메뉴를 탭하고, 하단 2단계 인증을 활성화 시켜준다.2. 앱 비밀번호 설정Google 계정 앱 비밀번호 페이지에서 앱 비밀번호를 설정해준다.위 스크린샷 화면에서 아래 앱 이름 입력 란에 앱 이름을 입력해준다. 이후, 만들기 버튼이 활성화되면 클릭한다.앱 비밀번호를 생성하면 위 화면과 같이 생성된 앱 비밀번호 Modal이 ..

Backend/Java

값이 반드시 유효해야 할 때: Spring Boot에서 Validation 처리하기

2025년 11월 4일에 작성되었고, 블로그를 이전하며 옮겨온 포스트입니다.여기에서 원본을 확인할 수 있습니다.왜 Validation을 추가해야 했을까?현재 개발 중인 앱에 피드백 기능이 있는데, 프론트엔드에서는 300자로 글자 수 제한을 두고 있지만, API를 이용해 직접 요청을 보내면, 글자 수 제한 없이 요청이 가능한 것을 확인했다. 이는 앱을 사용하는 사용자가 비정상적으로 요청을 보내게 되면 백엔드에서는 무한정으로 보낼 수 있기 때문에 혹시나 하는 상황을 대비해 백엔드에서도 이를 처리할 수단이 필요하다 생각되었다. 프론트엔드에서만 글자 수 제한을 둬서 막아도, 백엔드에서는 무한정 받을 수 있기 때문이다.Spring Boot Validation 설정하기Spring Boot Validation 을 사..

Backend/Java

[iOS] React Native EAS 빌드 대신 Xcode로 빌드하기

2025년 11월 3일에 작성되었고, 블로그를 이전하며 옮겨온 포스트입니다.여기에서 원본을 확인할 수 있습니다.들어가며왜 React Native를 사용하게 되었나?혼자 새로운 사이드 프로젝트를 시작하려 하는데, 앱을 한 번 만들어보고 싶었다. 하지만 어떤 기술 스택을 사용할지 고민하다가, Swift로 iOS 앱을 만드려고 했지만 그나마 친숙한 React Native(Expo)를 선택했다. 사실 선택지는 없었다내가 아이폰을 쓰고 있고, 애플을 좋아하기 때문에.. iOS 앱을 만들고 싶었지만,, 군대 싸지방에서는 맥북도 없고 당연히 Xcode도 사용할 수 없기 때문에 크로스플랫폼 개발을 지원하는 RN을 선택하게 된 것이었다..ㅎ 앱 개발이 마무리 과정에 들어가며 앱 스토어에 배포를 하기 전, TestFlig..

Frontend

[Spring Boot / JPA] @CreationTimestamp / @UpdateTimeStamp

2025년 5월 31일에 작성되었고, 블로그를 이전하며 옮겨온 포스트입니다.여기에서 원본을 확인할 수 있습니다.들어가며Spring Boot로 API를 만들 때 최초 업로드 된 Timestamp와 해당 Entity를 업데이트 했을 때의 Timestamp를 서비스 단에서 LocalDateTime.now() 로 직접 수정하였다. 코드로 예를 들면 아래와 같다....@Entityclass Project( ... @Column(nullable = false) var uploadedAt: LocalDateTime? = LocalDateTime.now(), @Column(nullable = false) var updatedAt: LocalDateTime? = LocalDateTime.now(), ...)...@..

Backend/Java

Spring Boot와 ELK를 활용한 서비스 로그 수집 및 모니터링

2025년 3월 6일에 작성되었고, 블로그를 이전하며 옮겨온 포스트입니다.여기에서 원본을 확인할 수 있습니다.ELK Stack정의ELK Stack은 Elasticsearch, Logstash, Kibana Stack의 줄임말로, 모든 시스템과 애플리케이션에서 로그를 집계, 분석하며 분석된 정보를 시각적으로 나타냄을 도와준다.작동 방식App & Log: 어플리케이션 또는 서비스에서 생성된 로그를 Logstash 로 전송한다.Logstash: 데이터를 수집 후 변환해 Elasticsearch 로 전송한다.Elasticsearch: 수집된(전송 받은) 데이터 또는 로그를 인덱싱, 분석하고 탐색한다.Kibana: 분석 결과를 시각화한다.Spring Boot 프로젝트 세팅1. 의존성(logstash-logback..

Backend/Java

[컨퍼런스] AI Summit Seoul 2026 후기

AI Summit Seoul & Expo 20262026년 8월 20일 AI Summit Seoul에 다녀왔다. 요즘 AI가 계속 발전하고 있음을 뼈져리게 느끼고 있고.. 기업에서는 어떤 방법으로 AI를 도입하고 활용하고 있는지, 어떤 솔루션을 만들 수 있고 어떻게 AI를 활용했는지 확인하고 싶어 방문하게 되었다.오후 12시쯤 전시장에 도착했는데, 입구는 한산한? 편이였고, 당연히 이미 사람들이 입장해있기에 행사장 내부는 복잡했다.SEAGATE미국의 대표적인 글로벌 데이터 저장 장치 전문 기업입구에서 입장하자마자 바로 보였던건 파트너사인 SEAGATE였다. 설문조사를 하면 우리 기업의 스토리지 전략에 대해 진단해볼 수 있었고 보답으로 텀블러도 받을 수 있다..ㅎ Notion협업 소프트웨어 및 생산성 툴 ..

일상

어? 이제 RestTemplate은 Spring에서 권장하지 않는다구?

2026년 7월 15일에 작성되었고, 블로그를 이전하며 옮겨온 포스트입니다.여기에서 원본을 확인할 수 있습니다.들어가며얼마 전에 Spring Boot 프로젝트에서 외부 API를 RestTemplate 방식으로 쓰려고 찾아보다가 Spring 공식 문서에서 아래 내용을 발견했다.As of Spring Framework 7.0, RestTemplate is deprecated in favor of RestClient and will be removed in a future version, please use the "Migrating to RestClient" guide. For asynchronous and streaming scenarios, consider the reactive WebClient.→ S..

Backend/Java

서비스에 AI 붙이기: Spring AI + Ollama + Function Calling

2026년 3월 15일에 작성되었고, 블로그를 이전하며 옮겨온 포스트입니다.여기에서 원본을 확인할 수 있습니다.프로젝트를 만드는 데에 AI 사용은 이제 선택이 아닌 필수라고 생각한다. 그래서 프로젝트에 AI를 어디에 사용할 것인지에 대해서는 생각해둔 부분은 많지만 막상 구현을 해보려니 어디서부터 시작해야 할지 방향이 잡히지 않는 부분이 많아 프로젝트에 사용하기 전에 공부를 해보기로 생각했다.원래 생각했던 방식공부를 하기 전, 원래 생각했던 방식은 아래와 같다.GPT-4, GPT-5 등과 같은 모델을 사용할 수 있는 OpenAI API 사용하기Spring Boot에서 API 요청이 때, 서비스에 맞는 프롬프트와 데이터를 텍스트 형식으로 제공생성된 답변을 ResponseAI를 사용할 수 있는 방식들검색 증강..

Backend/Java

(Spring Boot) Elasticsearch를 활용해 1,000만 개 데이터에서의 검색 속도 개선해보기

2026년 1월 3일에 작성되었고, 블로그를 이전하며 옮겨온 포스트입니다.여기에서 원본을 확인할 수 있습니다.들어가며이 글에서는 Spring Boot, MariaDB, Elasticsearch를 활용해 1,000만 건의 데이터를 검색하는 과정을 다룰 예정이다. 기존 JPA LIKE 검색 방식과 ES를 도입한 방식을 비교하며 대규모 데이터의 검색 속도를 개선하는 방법에 대해 살펴보겠다.Elasticsearch란?Elasticsearch는 Apache Lucene 기반의 오픈소스, 분산, RESTful 검색 엔진이다. 대량의 데이터를 실시간에 가까운 속도로 검색하고 분석할 수 있다.특징Inverted Index“The quick brown fox jumps over the” 라는 문장을 하나의 열로 저장하는..

Backend/Java

AWS 탈탈 털리고, Amazon Lightsail을 이용해 안전하게 파일 업로드 해보기 (Spring Boot)

2025년 12월 24일에 작성되었고, 블로그를 이전하며 옮겨온 포스트입니다.여기에서 원본을 확인할 수 있습니다.얼마 전, AWS에서 보내주는 경고 이메일을 열심히 무시하다가 계정이 잠겼다는 이메일을 보고 후다닥 AWS Console로 들어가 보았는데, 엄청난 과금이 되고 있다는 것을 발견했다.. 계정 자체가 털린 것은 아니지만, 프로젝트를 배포하는 과정에서 흘린 콘솔 액세스 키가 탈취되어 액세스 키를 활용해 다른 사람이 계정의 모든 지역에 (고가의) 인스턴스를 무작위로 생성해 과금을 유발하고 있었던 것이였다.. (다행히 킹왕짱 AWS 측에서 요금 조정을 해줌)액세스 키를 왜 발급했었냐면,,단지, 프로젝트의 기능 중 하나인 프로필 사진 업로드 기능을 구현하는데, Amazon S3 서비스를 이용하려고 액세..

Backend/Java

Java Spring Boot에서 템플릿을 설정하고 이메일 발송하기

2025년 11월 27일에 작성되었고, 블로그를 이전하며 옮겨온 포스트입니다.여기에서 원본을 확인할 수 있습니다.Gmail 설정하기만약 이미 2단게 인증 설정을 완료했고, 앱 비밀번호를 발급 받았다면 3단계로 건너뛰면 된다.1. 2단계 인증 설정Gmail을 통해 메일을 발송하려면, 계정의 2단계 인증이 활성화 상태여야 한다. Google 계정 페이지의 좌측 사이드 바에서 보안 및 로그인 메뉴를 탭하고, 하단 2단계 인증을 활성화 시켜준다.2. 앱 비밀번호 설정Google 계정 앱 비밀번호 페이지에서 앱 비밀번호를 설정해준다.위 스크린샷 화면에서 아래 앱 이름 입력 란에 앱 이름을 입력해준다. 이후, 만들기 버튼이 활성화되면 클릭한다.앱 비밀번호를 생성하면 위 화면과 같이 생성된 앱 비밀번호 Modal이 ..

Backend/Java

값이 반드시 유효해야 할 때: Spring Boot에서 Validation 처리하기

2025년 11월 4일에 작성되었고, 블로그를 이전하며 옮겨온 포스트입니다.여기에서 원본을 확인할 수 있습니다.왜 Validation을 추가해야 했을까?현재 개발 중인 앱에 피드백 기능이 있는데, 프론트엔드에서는 300자로 글자 수 제한을 두고 있지만, API를 이용해 직접 요청을 보내면, 글자 수 제한 없이 요청이 가능한 것을 확인했다. 이는 앱을 사용하는 사용자가 비정상적으로 요청을 보내게 되면 백엔드에서는 무한정으로 보낼 수 있기 때문에 혹시나 하는 상황을 대비해 백엔드에서도 이를 처리할 수단이 필요하다 생각되었다. 프론트엔드에서만 글자 수 제한을 둬서 막아도, 백엔드에서는 무한정 받을 수 있기 때문이다.Spring Boot Validation 설정하기Spring Boot Validation 을 사..

Backend/Java

[iOS] React Native EAS 빌드 대신 Xcode로 빌드하기

2025년 11월 3일에 작성되었고, 블로그를 이전하며 옮겨온 포스트입니다.여기에서 원본을 확인할 수 있습니다.들어가며왜 React Native를 사용하게 되었나?혼자 새로운 사이드 프로젝트를 시작하려 하는데, 앱을 한 번 만들어보고 싶었다. 하지만 어떤 기술 스택을 사용할지 고민하다가, Swift로 iOS 앱을 만드려고 했지만 그나마 친숙한 React Native(Expo)를 선택했다. 사실 선택지는 없었다내가 아이폰을 쓰고 있고, 애플을 좋아하기 때문에.. iOS 앱을 만들고 싶었지만,, 군대 싸지방에서는 맥북도 없고 당연히 Xcode도 사용할 수 없기 때문에 크로스플랫폼 개발을 지원하는 RN을 선택하게 된 것이었다..ㅎ 앱 개발이 마무리 과정에 들어가며 앱 스토어에 배포를 하기 전, TestFlig..

Frontend

[Spring Boot / JPA] @CreationTimestamp / @UpdateTimeStamp

2025년 5월 31일에 작성되었고, 블로그를 이전하며 옮겨온 포스트입니다.여기에서 원본을 확인할 수 있습니다.들어가며Spring Boot로 API를 만들 때 최초 업로드 된 Timestamp와 해당 Entity를 업데이트 했을 때의 Timestamp를 서비스 단에서 LocalDateTime.now() 로 직접 수정하였다. 코드로 예를 들면 아래와 같다....@Entityclass Project( ... @Column(nullable = false) var uploadedAt: LocalDateTime? = LocalDateTime.now(), @Column(nullable = false) var updatedAt: LocalDateTime? = LocalDateTime.now(), ...)...@..

Backend/Java

Spring Boot와 ELK를 활용한 서비스 로그 수집 및 모니터링

2025년 3월 6일에 작성되었고, 블로그를 이전하며 옮겨온 포스트입니다.여기에서 원본을 확인할 수 있습니다.ELK Stack정의ELK Stack은 Elasticsearch, Logstash, Kibana Stack의 줄임말로, 모든 시스템과 애플리케이션에서 로그를 집계, 분석하며 분석된 정보를 시각적으로 나타냄을 도와준다.작동 방식App & Log: 어플리케이션 또는 서비스에서 생성된 로그를 Logstash 로 전송한다.Logstash: 데이터를 수집 후 변환해 Elasticsearch 로 전송한다.Elasticsearch: 수집된(전송 받은) 데이터 또는 로그를 인덱싱, 분석하고 탐색한다.Kibana: 분석 결과를 시각화한다.Spring Boot 프로젝트 세팅1. 의존성(logstash-logback..

Backend/Java