java 31

[Spring Error] Error creating bean with name 'jpaAuditingHandler':

0. 개요@WebMvcTest를 활용해서 컨트롤러에 대한 테스트 코드를 작성하고 실행 중, 아래와 같은 오류가 발생했다.이번 포스팅에서는 이 오류의 원인과 해결 방법을 공유하려고 한다.Error creating bean with name 'jpaAuditingHandler': Cannot resolve reference to bean 'jpaMappingContext' while setting constructor argument1. 문제해당 오류는 jpaAuditingHandler 빈을 생성하는 동안 jpaMappingContext 빈을 찾을 수 없다는 BeanCreationException이다. 이 문제는 Spring Data JPA에서 발생하며, 보통 @EnableJpaAuditing을 활성화하지 ..

Spring 2025.05.01

[개발환경 설정] SSH로 서버 접속하기: RSA 키 생성 및 등록 방법

0. 개요EC2 서버를 생성하고 애플리케이션을 배포하기 위해 사용자 계정을 만든 후, 해당 계정에 다른 사람들도 안전하게 접근할 수 있도록 설정한다. SSH를 사용하여 서버에 접속하고, RSA 공개키 기반의 인증 방식을 활용하여 보안을 강화한다. SSH(Secure Shell)원격 서버에 안전하게 접속할 수 있는 프로토콜이다. SSH를 통해 서버와 클라이언트 간의 암호화된 통신을 할 수 있다.RSA비대칭 암호화 방식두 개의 키를 사용하여 데이터를 암호화하고 복호화하는 방식 (public key / private key)장점: 보안성, 1대1연결 - 공개키를 서버에 저장해서 사용하고 해당 키로 암호화된 데이터는 오직 대응되는 개인키로만 복호화 가능하다.+) Ubuntu 서버에서 새로운 사용자 계정 생성, ..

개발환경 설정 2025.04.20

[개발환경 설정] Ubuntu에 Java 설치 및 환경변수 설정하기

0. 개요Java 개발을 시작하려면 Java Development Kit (JDK)를 시스템에 설치하고, 이를 원활히 사용하기 위한 환경변수 설정이 필요하다.이 글에서는 AWS EC2에 Ubuntu 24.04 LTS를 기반으로 Java를 설치하고, 환경변수를 설정하는 방법에 대해 단계별로 설명한다.1. AWS EC2 인스턴스 생성하기아래 글 참조출처: https://olrlobt.tistory.com/83 [INFRA] AWS EC2 프리티어 인스턴스 생성하기AWS (Amazon Web Services) AWS는 Amazon이 제공하는 클라우드 컴퓨팅 플랫폼 및 인프라 서비스 모음이다. 2006년에 시작된 AWS는 가상 컴퓨터, 스토리지, 데이터베이스, 네트워킹, 분석, 머신 러닝, 모바일,olrlobt..

개발환경 설정 2025.04.20

[Java] Java에서의 Stream (스트림)

1. Stream2. Java의 Stream바이트 기반 스트림문자 기반 스트림3. Java의 보조 Stream(필터 Stream)InputStreamReaderOutputStreamWriterBuffer(버퍼)BufferedInputStream과 BufferedReaderBufferedOutputStream과 BufferedWriter* Stream 상속 관계  1. Stream단방향으로 이동하는 데이터의 흐름.프로그램을 기준으로, 프로세스가 데이터의 도착지면 입력 스트림(InputStream) / 프로세스가 데이터의 출발지면 출력 스트림(OutputStream)Stream은 사용이 끝난 후 .close()로 자원을 해제해야 한다, 보조(필터) 스트림이 닫히면 연결된 기본 스트림도 닫힌다.(try wit..

Java 2024.09.12

[Thread] Java Thread

1. Process (프로세스)Process Scheduling (프로세스 스케줄링)Process Scheduling 방식Process Scheduling AlogrithmProcess 상태 변화2. ThreadMain ThreadSingle ThreadMulti ThreadThread Life CycleThread 상태 변경 Method3. Monitor4. Thread & ConcurrencySemaphore(세마포어)Mutex(뮤 텍스)Synchronized5. DeadlockHold and Wait (점유 대기)Circular Wait (순환 대기)Starvation (기아 상태)Livelock6. Thread Pool 실습1. Process (프로세스)컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 ..

Thread - Network 2024.09.11

[Java] Java Logging

SLF4J (Simple logging facade for java) 다양한 로킹 프레임워크에 대한 간단한 Facade 또는 추상화 역할을 하여 최종 사용자가 배포시 원하는 로깅 프레임워크를 사용할 수 있도록 한다.Logback 다양한 Logging framework 중 하나.1. 로그 레벨error > warn > info > debug > traceerror : 요청 처리 중 문제가 발생.warn : 프로그램 실행은 문제 없지만, 향후 문제가 일으킬 수 있다.info : 정보성 메시지.debug : 개발 시 디버그 용도로 사용.trace : 좀 더 상세한 이벤트를 나타낼 때 사용.2. Logback 설정 및 사용https://mvnrepository.com/ 에서 slf4j, logback class..

Java 2024.09.11

[Java] Maven (메이븐)

1. JSON과 XML2. Package와 jar 3. Maven1. JSON과 XML공통점데이터를 저장하고 전달하기 위해 고안됨.기계뿐만 아니라 사람도 쉽게 읽을 수 있다.계층적인 데이터 구조를 가진다.다양한 프로그래밍 언어에 의해 파싱될 수 있다.XMLHttpRequest 객체를 이용하여, 서버로부터 데이터를 전송받을 수 있다.XML (Extensible Markup Language) 마르코 marco 31 70JSON (Java Script Object Notation)/* "name":"value", "name2:value2" */{ "name": "마르코", "id": "marco", "age": 31, "weight": 70} 2. Package와 j..

Java 2024.09.11

[코딩 문제] Calculator

문제터미널에서 동작하는 계산기 프로그램 작성터미널에서 실행되는 계산기를 작성합니다. 계산기는 4칙 연산(더하기, 빼기, 나누기, 곱하기)만을 지원하며, 괄호는 포함하지 않습니다. 연산자의 우선 순위는 지켜져야 합니다. 프로그램 요구 사항프로그램이 실행되면 아래와 같이 > 기호를 프롬프트로 보여줍니다.수식을 입력하면 계산 후 결과를 보여줍니다.계산은 연속해서 동작해야 합니다.exit() 를 입력하면 프로그램이 종료됩니다.수식이 잘못 입력 되었을 경우, InvalidExpressionException을 일으킵니다.프로그램의 수식은 Abstract Syntax Tree를 이용해서 계산되도록 작성되어야 하며, 아래 메소드는 AST를 반환하도록 작성되어야 합니다.generateAST 메소드를 호출하면 아래와 같은..

코딩 문제 2024.09.08

[Java 연습문제] Singleton과 Prototype 리포지토리 *

Singleton과 Prototpye 리포지토리GoF 디자인 패턴 중, 생성 패턴에 속하는 ProtoType 패턴은 코드를 클래스들에 의존시키지 않고 기존 객체들을 복사할 수 있도록 하는 패턴입니다.객체가 있고, 그 객체의 정확한 복사본을 만들고 싶을 경우, 일반적인 방식에서는 같은 클래스의 새 객채를 생성한 다음 원본 객체의 모든 필드를 새 객체로 복사해야 합니다. 하지만 이런 경우, 몇 가지 위험성과 불편한 점이 있습니다.   1. 원본 객체의 필드 중 일부는 private으로 선언되어 있어, 외부에서 볼 수 없다.   2. 해당 원본 객체의 클래스 소스코드를 알아야 할 필요가 있다.프로토타입 패턴은 실제로 복제되는 객체들에 복제 프로세스를 위임합니다. 복제를 지원하는 객체를 프로토타입이라고 하며, ..