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

차가운 개발노트

  • 분류 전체보기 (136)
    • Java (27)
    • SQL (12)
    • Spring (29)
    • React (15)
    • Next (5)
    • CS (16)
    • 라이브러리 (13)
    • React-native (4)
    • Git (2)
    • JavaScript (4)
    • 데이터베이스 이론 (3)
    • 설치 (3)
  • 홈
  • 태그
  • 방명록
좌충우돌 원격 서버 배포 및 Jenkins CI/CD 구축기

좌충우돌 원격 서버 배포 및 Jenkins CI/CD 구축기

이 글은 단순한 작업 기록을 넘어, 비슷한 문제를 겪을 동료들에게 가이드가 될 수 있도록 작성하였습니다. 단순히 "배포에 성공했다" 는 결과보다, 그 과정에서 마주친 수많은 'Permission Denied' 와 '접속불가' 메시지들을 어떻게 논리적으로 해결했는지 초점을 맞췄습니다. 저와 같은 주니어 개발자분들에게 이 글이 도움이 됐으면 좋겠습니다. 대두분을 로컬 환경에서 테스트를 하고 Git 에 배포하는 과정만 하다가 실제 서비스를 24시간 꺼지지 않는 별도의 서버에 돌아가게 만들어보라는 요청에 Maven 과 Spring 기반의 프로젝트를 회사 원격 서버에 올리는 임무를 진행했습니다. Terminus 를 통해 서버에 접속하여 보안상 공용 계정이 아닌 내 전용 계정을 생성하여 작업을 진행하였습니다.톰캣..

  • format_list_bulleted Java
  • · 2026. 4. 28.
  • textsms
빈 검증에 대하여

빈 검증에 대하여

Bean Validation검증 애노테이션과 여러 인터페이스의 모음이며 마치 JPA 가 표준 기술이고 그 구현체로 하이버네이트가 있는 것과 같다. Bean Validation 을 사용하려면 다음과 같은 의존관계를 추가해야 한다.build.gradleimplementation 'org.springframework.boot:spring-boot-starter-validation' @Data@NoArgsConstructor@AllArgsConstructorpublic class Item { private Long id; @NotBlank private String itemName; @NotNull @Range(min = 1000, max = 100000) private Integer price; @NotNul..

  • format_list_bulleted Java
  • · 2026. 3. 23.
  • textsms
필터와 인터셉터

필터와 인터셉터

Filter 와 Interceptor 가 필요한 이유는 모든 로직에 대하여 인증 절차를 처리하는 Logic 이 있다면, 하나하나 등록을 하는 것 보다 한번에 처리할 수 있는 기능이 있으면 유지보수 하기 쉬워 사용하는 것이다.이렇게 애플리케이션 여러 로직에서 공통으로 관심이 있는 것을 공통 관심사(Cross-cutting concern) 이라고 한다. 필터 (Filter)필터를 적용하면 필터가 호출 된 다음에 서블릿이 호출된다.그래서 모든 고객의 요청 로그를 남기는 요구사항이 존재한다면 필터를 사용하면 된다.HTTP 요청 -> WAS -> 필터 -> 서블릿 -> 컨트롤러 참고로 스프링을 사용하는 경우 여기서 말하는 서블릿은 스프링의 디스패터 서블릿으로 생각하면 된다. 필터 체인 (Filter Chain)..

  • format_list_bulleted Java
  • · 2026. 3. 16.
  • textsms
마이바티스

마이바티스

마이바티스 MyBatis 는 JdbcTemplate 보다 더 많은 기능을 제공하는 SQL Mapper 이다.JdbcTemplate 와 비교해서 MyBatis 의 가장 매력적인 점은 SQL 을 XML 에 편리하게 작성할 수 있고 또 동적 쿼리를 매우 편리하게 작성할 수 있다.jdbcTemplateString sql = "update item" +"set item_name:itemName, price=:price, quantity=:quantity" +"where id=:id"; Mybatis update item set item_name = #{itemName}, price = #{price}, quantity = #{quantity} where id = #{id}또한 동적 쿼리도 아주 손쉽게 적용시킬..

  • format_list_bulleted Java
  • · 2026. 3. 5.
  • 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
유용한 람다식 함수들

유용한 람다식 함수들

자바 8 부터 람다식과 함께 사용하던 코드를 더 간결하고 강력하게 만들 수 있는 함수형 인터페이스들이 추가됐습니다.따라서 대표적인 함수형 메서드를 정리해 보았습니다.미리 들어가기에 앞서 람다 Stream 사용 시 단순 for 문 혹은 while 문 보다 성능이 떨어집니다.또한 불필요하게 너무 사용하게 되면 오히려 가독성을 떨어트릴 수 있습니다.일단 Stream 이란먼저 유용한 람다식 함수들을 배우기 전에 Stream 이란 무엇인지 간단하게 설명하겠습니다.Stream 은 데이터(리스트, 배열 등) 를 한줄(Stream)로 흘려보내면서 필요한 작업(변환,필터링등) 을 수행하는 기능입니다.쉽게 말해, 데이터를 하나씩 순서대로 흘려보내면서 변형하는 파이프라인 같은 것입니다.데이터 자체를 변경하지 않고, 가공해서..

  • format_list_bulleted Java
  • · 2025. 2. 4.
  • textsms
자바의 반복문 종류

자바의 반복문 종류

가끔 기억이 나지 않을 때 참고하려고 정리했습니다. 자바에서는 반복문이 기본적으로 5가지가 있습니다.4가지라고 생각하실 수 있지만 Lamda 를 이용한 반복문까지 포함했습니다. 자바의 반복문for 문반복횟수가 정해져 있을때 사용하면 좋습니다.초기값, 조건, 증감식을 사용해서 반복을 제어합니다.public class ForLoopExample { public static void main(String[] args) { for (int i = 1; i  실행 결과i = 1i = 2i = 3i = 4i = 5 while 문반복횟수가 정해지지 않았을 때 사용하면 좋습니다.조건이 true 일 동안 계속해서 반복합니다.public class WhileLoopExample { public st..

  • format_list_bulleted Java
  • · 2025. 2. 4.
  • textsms
Java 의 Call by Value, Call by Reference

Java 의 Call by Value, Call by Reference

Call by ValueCall by Value 는 메서드를 호출할 때 값을 넘겨주기 때문에 Pass by Value 라고도 부릅니다.메서드를 호출하는 호출자의 변수와 호출 당하는 수신자의 파라미터는 복사된 서로 다른 변수입니다.값만을 전달하기 때문에 수신자의 파라미터를 수정해도 호출자의 변수에는 아무런 영향이 없습니다.byte, short, int, float, long, double, char, boolean기본 타입을 감싸는 래퍼 클래스는 불변 객체이므로 Call by Value 에 해당합니다.Integer, Long, Double, Float, short, Byte...요약- 값을 복사하여 처리한다.- 변수의 복사본이 전달되며, 원래 값이 수정되지 않는다.- 실제 인수는 다른 메모리 위치에 생성된..

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

티스토리툴바