분류 전체보기

    [Java] 문자열 연결 방식 비교: String vs StringBuilder vs StringBuffer

    이번 글에서는 String에 + 연산자를 사용하는 방식과 StringBuilder 및 StringBuffer를 사용하는 방식을 비교하여 효율성에 대해 알아보고자 한다. 1. String에 + 연산자를 사용하는 방식 String에 + 연산자를 사용하여 문자열을 연결하는 방식은 간단하고 직관적이다. 하지만 이 방식은 문자열을 연결할 때마다 새로운 String 객체를 생성하므로 메모리 사용량이 많아진다. 특히 반복문 안에서 문자열을 연결할 경우 성능에 부정적인 영향을 미칠 수 있다. String result = ""; for (int i = 0; i < 10; i++) { result += "문자열 " + i; } 위의 예시에서는 반복문을 통해 문자열을 10번 연결하고 있다. 이 경우에는 매번 새로운 Stri..

    [Java] 예외 처리 printStackTrace()의 취약점과 대안

    자바에서 예외 처리를 위해 주로 사용되는 printStackTrace() 메소드에 대해 글을 쓰려고 한다. 이 메소드는 예외 처리에 유용하지만, 보안상의 이유로 프로덕션 환경에서는 사용하지 않는 것이 좋다. 그럼 해당 메소드의 취약점과 대안에 대해 자세히 살펴보자. 1. e.printStackTrace()의 취약점 printStackTrace() 예외 발생 시 예외 메시지와 함께 호출 스택 정보를 출력해주는 메소드이다. 이는 개발 및 디버깅 과정에서 유용하게 사용될 수 있지만, 프로덕션 환경에서는 보안 상의 이유로 사용하지 않는 것이 좋다. 왜냐하면 호출 스택 정보가 외부로 노출될 경우, 악의적인 공격자가 시스템의 취약점을 파악하고 악용할 수 있기 때문이다. 2. 로깅 라이브러리를 활용한 예외 처리 pr..

    [Java] 문자열 연결에 대한 StringBuilder와 StringBuffer 비교

    Java에서 문자열을 연결하는 데 사용되는 StringBuilder와 StringBuffer의 장점과 단점에 대해 알아보고, 이를 통해 어떤 경우에 어떤 클래스를 선택해야 하는지 알아보자. 1. StringBuilder의 장점과 단점 장점: 가변성: StringBuilder는 내부 버퍼에 문자열을 추가하므로, 새로운 객체를 생성하지 않고도 문자열을 효율적으로 연결할 수 있다. 빠른 성능: StringBuilder는 단일 스레드 환경에서 사용할 때 가장 빠른 성능을 제공한다. 동기화 비용 없음: StringBuilder는 동기화를 고려하지 않으므로, 동기화 관련 비용이 없다. StringBuilder sb = new StringBuilder(); sb.append("Hello"); sb.append(" "..

    [Error Log] A problem occurred configuring root project..(Spring-boot)

    JAVA version : 11 Spring boot : 3.1.5 A problem occurred configuring root project 'hello-spring'. Could not resolve all files for configuration ':classpath'. Could not resolve org.springframework.boot:spring-boot-gradle-plugin:3.0.2. Required by: project : > org.springframework.boot:org.springframework.boot.gradle.plugin:3.0.2 No matching variant of org.springframework.boot:spring-boot-gradle-pl..

    [MSSQL] 트리거(Trigger) 개념과 구현 방법

    트리거(Trigger)는 이벤트 발생 시 자동으로 실행되는 메커니즘으로, 데이터베이스 시스템에서 중요한 역할을 합니다. 본문에서는 트리거(Trigger)의 개념과 사용 유형, 장,단점, Microsoft SQL Server (MSSQL) 트리거 구현 방법에 대해 정리해보았다. 1. 트리거(Trigger)란? 트리거는 특정 테이블에 INSERT, DELETE, UPDATE 등과 같은 이벤트가 발생할 때 자동으로 실행되며, 사용자에 의해 직접 호출되는 방식이 아니라 이벤트에 의해 데이터베이스에서 자동으로 호출되는 것이 특징이다. 2. 트리거(Trigger) 사용 유형 트리거는 다양한 형태로 사용되는데, 몇 가지 일반적인 트리거 사용 유형은 아래와 같다. 2-1.데이터베이스 트리거(Trigger) 데이터베이스..

    [Spring] 스프링 프레임워크(Spring Framework) 란?

    Java 기반의 오픈 소스 애플리케이션 개발 프레임워크로, 대규모 엔터프라이즈급 애플리케이션 개발에 주로 사용되는 스프링 프레임워크(Spring Framework)의 동작 원리, 장점과 단점 순으로 간단하게 정리해 보았다. 1. 스프링 프레임워크(Spring Framework)란? 스프링 프레임워크는 의존성 주입(Dependency Injection)과 제어 역전(Inversion of Control) 등의 핵심 개념을 기반으로 한다. 의존성 주입은 객체 간의 의존 관계를 설정하고 필요한 객체를 주입하는 방식으로, 유연하고 테스트 가능한 코드 작성을 도와준다. 제어 역전은 객체의 생명주기를 관리하고 객체 생성 및 조립을 담당하는 컨테이너가 있음을 의미한다. 2. 스프링 프레임워크(Spring Framew..