Project 8

Spring Boot 3 + Maven + MyBatis 프로젝트에서 SQL 로그 예쁘게 출력하기(P6Spy 1.10.0)

P6Spy를 적용한 이유Spring Boot로 백엔드 개발을 하면 SQL 로그를 자주 확인하게 된다.기본 SLF4J debug 설정으로도 SQL 로그 확인이 가능하지만 한 줄로 출력되어 가로로 스크롤하기가 여간 귀찮은 일이 아니었다.SQL 로그를 여러 줄로 보기 좋게 포맷팅하기 위해 P6Spy를 활용했다.P6Spy는 애플리케이션의 코드를 변경하지 않고도 데이터베이스 데이터를 원활하게 가로채서 기록할 수 있는 프레임워크이다. 개발 환경Maven : 4.0.0Spring Boot : 3.4.1Java : 17MyBatis : 3.0.4 적용하기 위해 구글링을 해봤었지만 이전 버전에서 설치를 했거나 JPA를 사용하여 MyBatis에 적용하기 쉽지가 않았다.또한 어떤 라이브러리를 쓰는지, 버전마다 적용 방법이 ..

Project 2025.02.07

단일 스레드로 순차 처리 vs 비동기 vs 멀티스레드 성능 테스트 - Java

오늘은 비동기와 멀티스레드 모두 활용할 수 있는 로그 파일 분석 & 알림 시스템을 만들어 보았다. (한 줄 요약 : 십만 건의 로그 데이터 분석을 1. 그냥 2. 비동기 3. 멀티스레드 4. 비동기 + 멀티스레드 네 가지 케이스로 나누어 비교) 우선 이 프로젝트를 하게 된 이유는,, 실무에서는 대용량 데이터를 처리할 때 어떻게 효율성을 높이고 성능을 높이는지 궁금했다. 1. 기술 블로그를 통해 실무에서의 비동기, 멀티스레드 적용 사례 알아보기 2. 비동기, 멀티스레드의 개념과 어떤 경우에 적용하는지 알아보기 3. 프로젝트 기획하기 4. 로그 더미 데이터 만들기 5. Java로 처리 시간 확인하기 https://11st-tech.github.io/2024/01/04/completablefuture/ Jav..

Project 2024.11.07

AngularJS로 만든 포트폴리오 웹사이트 1일차

angцlarJS로 口ざ든 포트폴己l오 웹バr○l트 1일ㅊr 회ヱ✨이번 프로젝트에서는 AngularJS를 사용해 그 시절 감성 그대로의 포트폴리오 웹사이트를 제작했다.기존에는 React를 활용해 프론트엔드를 구현한 경험이 있다. AngularJS로 개발했을 때의 차이점과 특징이 궁금했다.개발에 앞서 알아본 바로는 AngularJS는 단일 페이지 애플리케이션(SPA) 개발을 위한 자바스크립트 프레임워크로, 클라이언트 사이드에서 동적인 웹 애플리케이션을 개발하는 데 사용된다. 특히 양방향 데이터 바인딩과 MVC 구조로 개발의 편의성을 높여주는 특징을 가진다.1일차 구현 보고이번 주말은 기획과 대략적인 UI 구현, AngularJS 간단하게 사용해보는 걸 목표로 했다. 1차 기능 개발 후 바로 배포하고 나머지..

Project 2024.11.04

[프로젝트 회고] 대용량 데이터 처리 프로젝트(최저 가격 검색 시스템)

프로젝트 개요최근 클라우드 엔지니어링 프로젝트에서 공연 예매 서비스를 고가용성 클라우드 시스템으로 구축했습니다. 이 과정에서 대용량 데이터 처리에 대한 관심이 생겨, 성능 이슈를 파악하고 해결하는 경험을 하고자 이번 프로젝트를 진행했습니다. 개발 환경은 Java 17, Spring Boot 3.3.0을 활용했습니다. 한국소비자원의 생필품 가격 정보 데이터는 약 21만 건의 데이터가 있어 부하 테스트에 적합하다고 판단하여 이 데이터를 사용하기로 결정했습니다. 데이터는 아래 링크에서 다운로드할 수 있습니다.한국소비자원 데이터  프로젝트의 목표는 사용자의 위치나 지정된 지역을 기준으로 최저 가격을 검색하는 기능을 제공하는 것이었습니다. 시/도, 구, 동 단위로 검색하여 최저 가격으로 구매할 수 있는 곳을 쉽게..

Project 2024.08.11

@RequestBody와 @ModelAttribute를 언제 사용해야 할까?

Intro Spring Boot 프로젝트 진행 중 REST API로 개발하다가 Thymeleaf 사용 차 @Controller 어노테이션으로 변경한 일이 있었다. 모여서 회의하다가 Server Side Rendering와 Client Side Rendering에 대한 개념 등 조금 더 알아보기로 했다. 그 중 난 @RequestBody와 @ModelAttribute의 차이점과 언제 활용할 수 있는 지에 대해 알아본 내용을 바탕으로 팀 기술 문서 자료를 준비했다. 컨텐츠 주제 @RequestBody VS @ModelAttribute 차이점, 유사점 등등 각각 특징 등을 비교해서 포스팅 해주세요. 이때 해당 작업은 어떨 때 구분해서 사용 되는지에 대해서 설명해주고! 해당 작업을 사용한 예시 코드도 좀 부탁드..

Project 2024.02.26

[Naver API] 검색 API 사용해보기

https://developers.naver.com/docs/serviceapi/search/blog/blog.md#%EB%B8%94%EB%A1%9C%EA%B7%B8 검색 > 블로그 - Search API 검색 > 블로그 블로그 검색 개요 개요 검색 API와 블로그 검색 개요 검색 API는 네이버 검색 결과를 뉴스, 백과사전, 블로그, 쇼핑, 영화, 웹 문서, 전문정보, 지식iN, 책, 카페글 등 분야별로 볼 수 developers.naver.com 위의 공식 문서를 참고한다. curl "https://openapi.naver.com/v1/search/blog.xml?query=%EB%A6%AC%EB%B7%B0&display=10&start=1&sort=sim" \ -H "X-Naver-Client-Id..

Project 2023.10.09

[OpenCV] 앱 개발 일지

Naver Blog Posting Migration 작성일 : 2022.11.7 10:08 원문 https://blog.naver.com/parkyl0208/222922079176 OpenCV 앱 개발 일지 (수정 중) 221107 Mon 저번주 주말 Kakao Oven으로 UI 설계, Notion으로 작성한 기능 명세서를 바탕... blog.naver.com 221107 Mon 저번주 주말 Kakao Oven으로 UI 설계, Notion으로 작성한 기능 명세서를 바탕으로 본격적으로 코드로 구현 시작. Andriod Studio에서 Flutter로 개발 예정. Dart SDK, gradle version 환경 설정 해결 완료. Do IT 플러터 앱 프로그래밍 책으로 플러터 내부 구조 및 위젯 파트 개념 ..

Project 2023.08.09

EC2 서버에 올라간 Spring Boot와 React 연동 시 CORS 설정

CodeStates Project team 3 Backend 에러 및 해결 에러 EC2 서버에 올라간 Spring Boot와 React 연동 시 CORS 설정 해결 React에서 package.json에 프록시 설정 npm i http-proxy-middleware 로 라이브러리 설치 setProxy.js 에 코드 추가 "proxy": "[]", const { createProxyMiddleware } = require("http-proxy-middleware"); module.exports = function (app) { app.use( createProxyMiddleware("/api/v1", { target: "http://localhost:8082", changeOrigin: true, }) )..

Project 2023.07.13