프로필 로고 차가운 개발노트
close
프로필 배경
프로필 로고

차가운 개발노트

  • 분류 전체보기 (130)
    • Java (23)
    • SQL (12)
    • Spring (27)
    • React (15)
    • Next (5)
    • CS (16)
    • 라이브러리 (13)
    • React-native (4)
    • Git (2)
    • JavaScript (4)
    • 데이터베이스 이론 (3)
    • 설치 (3)
  • 홈
  • 태그
  • 방명록
Swagger

Swagger

SwaggerSwagger 는 REST API 를 문서화하고, 웹 UI 를 통해서 테스트까지 할 수 있게 도와주는 도구입니다. Swagger 는 API 의 메뉴판이라는 말도 있습니다.개발자가 만든 API(서버 기능 목록) 을 정리해서 보여주며, 웹 화면으로 API 를 직접 눌러보고 테스트 할 수 있습니다.또한 문서를 따로 쓰지 않아도 코드에 따라 자동으로 만들어줍니다.즉, Swagger = API 메뉴판 + 테스트 도구 사용하는 이유 예를 들어, 개발자가 "로그인 API" 를 만들었다고 해봅시다. API 주소: POST /login요청(Request): id, password응답(Response): 200 성공, 400 실패 위와 같은 요구사항이 발생했을 때 문서로 정리를 하지 않는다면 팀원들이 헷갈..

  • format_list_bulleted Spring
  • · 2025. 10. 2.
  • textsms
WAR 배포 및 분석

WAR 배포 및 분석

간단한 용어설명WAS(웹 애플리케이션 서버 Tomcat, 웹 서버 + 서블릿 컨테이너 기능 제공)서블릿 컨테이너(Catalina, 서블릿을 관리하는 곳, Tomcat 이라고도 함)스프링 컨테이너(Controller, Service 등 Bean 을 관리하는 곳)서블릿(Servlet, Client 의 모든 요청을 받아서 -> 스프링이 만든 Controller 에게 배분)WARWAR(Web Application Archive) 라는 이름에서 알수가 있듯이 WAR 파일은 웹 애플리케이션 서버(WAS) 에 배포할 때 사용하는 파일입니다. JAR 파일이 JVM 위에서 실행된다면, WAR 는 웹 애플리케이션 서버(WAS) 위에서 실행됩니다.HTML 같은 정적 리소스와 클래스 파일을 모두 함께 포함하기 때문에 JAR ..

  • format_list_bulleted Spring
  • · 2025. 9. 25.
  • textsms
Spring 외부설정, 조회방법

Spring 외부설정, 조회방법

외부설정이란하나의 애플리케이션을 여러 다른 환경에서 사용해야 할 때가 있습니다.개발환경, 운영환경에 따라 URL, DB 경로등을 다양하게 설정해야 하기 때문에 외부 설정이 필요합니다. 그래서 개발용 app.jar, 운영용 app.jar 파일을 설정하는 것이 아니라 하나의 app.jar 를 개발하고 배포한 뒤에 각 환경에 맞추어 실행 시점에 외부 설정값을 주입하면 한번만 빌드해도 되고, 개발버전과 운영버전의 빌드 결과물이 같기 때문에 개발환경에서 검증되면 운영 환경에서도 믿고 사용할 수가 있습니다.유지보수하기 좋은 애플리케이션 개발의 가장 큰 기본 원칙은 변하는 것과 변하지 않는 것을 분리하는 것입니다. 외부설정방법외부 설정을 하는 방법은 일반적으로 다음 4가지 방법이 있습니다.1. OS 환경변수2. 자바..

  • format_list_bulleted Spring
  • · 2025. 9. 22.
  • textsms
ConcurrentHashMap 에 대하여

ConcurrentHashMap 에 대하여

회사에서 은행에서 쓰일 hashMap 을 구현 중 ConcurrentHashMap 을 사용할 일이 생겨 정리했습니다. ConcurrentHashMap 은 Java 에서 멀티스레드 환경에서 안전하게 사용할 수 있는 Map 자료구조입니다. ConcurrentHashMapConcurrentHashMap 은 HashMap 과 비슷한 구조인데, 여러 스레드가 동시에 접근해도 안전하게 동작하도록 만든 동기화된 Map 입니다. 이러한 ConcurrentHashMap 은 java.util.concurrent 패키지에 포함돼어 있습니다.Map map = new ConcurrentHashMap(); 왜 HashMap 을 사용하지 않는 걸까?HashMap 은 멀티스레드 환경에서 안전하지가 않습니다.두 개 이상의 스레드가 동..

  • format_list_bulleted Java
  • · 2025. 6. 6.
  • textsms
트랜잭션 프록시와 예외

트랜잭션 프록시와 예외

Transaction Proxy, Exception 에 대해 공부하면서 정리합니다. 실무에서 @Transactional 을 붙인 메서드를 실행했는데 정상적으로 동작하지 않아 원인을 찾고 공부한 내용을 정리했습니다.트랜잭션 프록시를 만드는 이유왜 굳이 프록시를 만들어서 트랜잭션을 처리해야 할까요?@Transactional 이 붙은 메서드가 호출될 때 자동으로 트랜잭션을 시작하고, 정상 종료되면 commit, 예외가 나면 rollback 을 해주기 위해서입니다. 구체적으로 왜 프록시가 필요한지 코드를 보면 트랜잭션을 처리하려면 메서드 실행 전후로 아래와 같은 코드가 필요합니다.beginTransaction(); // 트랜잭션 시작try { targetMethod(); // 실제 로직 실행 ..

  • format_list_bulleted Spring
  • · 2025. 4. 8.
  • textsms
스프링의 메세지, 국제화

스프링의 메세지, 국제화

메세지화면에서 공통으로 사용되는 다양한 메세지를 한 곳에서 관리하도록 하는 기능을 메세지 기능이라고 합니다.메세지 기능을 사용하지 않을 경우 우리는 모든 메세지를 각각 하드코딩으로 입력해야 합니다. 상품 ID 상품명 가격 수량  아이템 상세를 보여주는 위 HTML 태그들에는 각각 하드코딩으로 상품ID, 상품명, 가격, 수량이 적혀있습니다.또한 해당 명칭들은 나머지 다른 많은 페이지에서 공통으로 쓰이고 있다고 할 대 기획 변경으로 상품명을 제품명으로 바꿔야 한다면 어떻게 할까요? 메세지 기능을 사용하지 않았다면 모든 소스파일에서 하나하나 상품명이라 적혀있는 곳을 찾아 제품명이라 바꿔주어야 합니다. 하지만 메세지 기능을 사용했다면 다음과 같이 메세지를 변수화 ..

  • format_list_bulleted Spring
  • · 2025. 2. 13.
  • textsms
Lombok

Lombok

Lombok이란?Lombok은 Java에서 반복적으로 작성해야 하는 보일러플레이트(boilerplate) 코드를 자동으로 생성해주는 라이브러리입니다. 이를 통해 getter/setter, toString(), equals(), hashCode(), 생성자 등의 코드를 직접 작성할 필요 없이 간결한 코드로 유지할 수 있습니다.Lombok을 사용하면 코드의 가독성이 향상되고 유지보수가 쉬워지며 컴파일 타임에 실제 메서드를 생성해주므로 성능에도 영향을 미치지 않습니다.Lombok 설정 방법Lombok 의존성 추가Lombok을 사용하려면 pom.xml(Maven) 또는 build.gradle(Gradle)에 Lombok을 추가해야 합니다.Maven 사용 시 (pom.xml) org.proje..

  • format_list_bulleted 라이브러리
  • · 2025. 2. 4.
  • textsms
@valid vs @validated

@valid vs @validated

📌@Valid, @Validated우리가 웹사이트에서 회원가입을 할 때, 이런 걸 검사해야 합니다.✔ 이름을 입력했는지?✔ 나이가 너무 어리진 않은지?✔ 이메일 형식이 맞는지? 이런 검사를 백엔드(Spring) 에서 자동으로 해주는 게 @Valid랑 @Validated입니다.@Valid 사용법 (기본 검사)예를 들어 회원가입할 때, 이름이 비어있으면 안 되고, 나이는 18살 이상이어야 한다는 조건을 붙인다고 생각합시다.UserDTO (데이터 저장하는 클래스)import jakarta.validation.constraints.Min;import jakarta.validation.constraints.NotBlank;import jakarta.validation.constraints.NotNull;publ..

  • format_list_bulleted Spring
  • · 2025. 2. 3.
  • textsms
  • navigate_before
  • 1
  • 2
  • 3
  • navigate_next
공지사항
전체 카테고리
  • 분류 전체보기 (130)
    • Java (23)
    • SQL (12)
    • Spring (27)
    • React (15)
    • Next (5)
    • CS (16)
    • 라이브러리 (13)
    • React-native (4)
    • Git (2)
    • JavaScript (4)
    • 데이터베이스 이론 (3)
    • 설치 (3)
최근 글
인기 글
최근 댓글
태그
  • #데이터베이스
  • #SQL
  • #CS
  • #react
  • #React-Native
  • #NEXT
  • #Java
  • #라이브러리
  • #Spring
  • #Next.js
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바