
기존 방식의 한계 자바에서 배열이나 컬렉션을 다루기 위해 흔히 for문이나 Iterator를 사용하곤 했습니다. 하지만 다음과 같은 문제점이 존재합니다. | 기존 방식의 문제점 | 설명 |

간단히 말해서 메서드를 하나의 식(expression)으로 표현한 것이다. 메서드를 람다식으로 표현하면 메서드의 이름과 반환값이 없어지므로, 람다식을 익명 함수(anonymous function)라고도 한다.자바에서는 모든 메서드는 클래스에 포함되어야 하므로 클래스도

젊은 개발자가 쓴 스프링 부트 입문서현재 작은 스타트업에서 풀스택 개발자로 재직 중이며, 규모에 비해 적지 않은 연봉을 받고 있다. 처음에는 프론트엔드 개발자로 입사하였으나, 현재는 업무 영역을 넓혀 백엔드 개발까지 담당하고 있다. 회사의 백엔드는 주로 Node.js를
스프링 시큐리티(Spring Security)는 스프링 기반의 애플리케이션 보안(인증, 인가, 권한)을 담당하는 스프링 하위 프레임워크이다.스프링 스큐리티는 필터 기반으로 동작한다. 각 필터에서 인증, 인가와 관련된 작업을 처리한다.기본적으로 세션 & 쿠키 방식으로 인
타임리프는 템플릿 엔진이다. 템플릿 엔진은 서버에서 데이터를 받아 우리가 보는 웹 페이지, 즉 HTML 상에 데이터를 넣어 보여주는 도구이다.build.gradle 파일에 의존성을 추가해야 타임리프를 사용할 수 있다.■ 타임리프 표현식■ 타임리프 문법API 컨트롤러는

프로세스란 실행 중인 프로그램, 프로그램을 실행하면 OS로부터 실행에 필요한 자원(메모리)을 할당받아 프로세스가 된다.프로세스는 프로그램을 수행하는 데 필요한 데이터와 메모리 등의 자원 그리고 쓰레드로 구성되어 있으며 프로세스의 자원을 이용해서 실제로 작업을 수행하는
ORM ORM은 Object-Relational Mapping의 약어로, 객체(Object)와 관계형 데이터베이스(Relational Database) 사이의 데이터를 자동으로 매핑해주는 기술이다. 자바의 객체와 관계형 데이터베이스의 테이블 사이의 구조적 차이를 매
스프링 부트 구조 스프링 부트는 각 계층이 양 옆의 계층과 통신하는 구조를 따른다. 계층은 각자의 역할과 책임이 있는 어떤 소프트웨어의 구성 요소를 의미한다. 각 계층은 소통할 수 있지만 다른 계층에 직접 간섭하거나 영향을 미치지 않는다. 스프링 부트에는 프레젠테이
스프링은 자바 기반의 엔터프라이즈 애플리케이션 개발을 손쉽게 만들어주는 프레임워크입니다. 객체 지향적인 설계 원칙을 자연스럽게 따르도록 지원함으로써 대규모 애플리케이션 개발에 효과적입니다.위와 같이 클래스 A에서 직접 B 객체를 생성할 경우, 클래스 간 결합도가 높아지

자바 언어의 설계자들은 소스코드와 그에 대한 문서를 따로 관리하는 것보다 소스코드 자체에 문서 정보를 포함시키는 방식이 더욱 효율적이라고 판단하였습니다. 이에 따라 자바에서는 주석(comment)을 이용해 문서화할 수 있는 기능을 제공하며, 이를 위해 javadoc.e

Java에서 제네릭(Generic)은 다양한 타입의 객체들을 다루는 클래스나 메서드에서 컴파일 시점의 타입 체크(compile-time type check) 를 가능하게 해주는 강력한 기능입니다. 제네릭을 올바르게 사용하면 타입 안정성을 높이고, 불필요한 형변환(cas

프로그래밍을 하다 보면 데이터를 하나만 다루는 경우보다, 여러 개의 데이터를 그룹으로 묶어 처리해야 하는 상황이 훨씬 더 많습니다. Java에서는 이러한 다수의 데이터를 효과적으로 저장하고 관리할 수 있도록 컬렉션 프레임워크(Collection Framework)를 제

Java 애플리케이션에서는 사용자에게 데이터를 보여줄 때, 숫자나 날짜, 통화 등 다양한 형식으로 데이터를 표현하는 경우가 많습니다. 이러한 데이터 표현의 일관성과 유연성을 위해 Java에서는 java.text 패키지를 통해 형식화(formatting) 클래스를 제공합

소프트웨어 개발에서 날짜와 시간의 처리는 생각보다 까다로운 문제입니다. 시간대(Time Zone), 윤년(leap year), 월의 길이 차이 등 다양한 예외 상황이 존재하기 때문입니다. Java는 이러한 복잡성을 감안하여 일찍이 날짜와 시간을 다루기 위한 표준 클래스

Java 프로그래밍을 시작하면서 가장 먼저 접하게 되는 패키지 중 하나가 바로 java.lang입니다. 이 패키지는 자바 애플리케이션의 기본적인 동작에 필수적인 클래스들로 구성되어 있으며, 별도의 import 문 없이도 사용할 수 있도록 특별히 설계되어 있습니다.예외

코드를 작성하다 보면 예상치 못한 오류가 발생하는 경우가 자주 있습니다. 예를 들어, 배열의 범위를 초과하거나, 파일이 없을 때 접근하려고 할 때 등등. 이런 오류를 예외(Exception) 라고 부르고, 자바에서는 예외를 안전하게 처리할 수 있는 예외 처리(Excep

자바에서 객체 지향 프로그래밍을 제대로 활용하기 위해 꼭 이해하고 넘어가야 할 두 가지 중요한 개념이 있습니다. 바로 추상 클래스(Abstract Class) 와 인터페이스(Interface) 입니다.추상 클래스는 미완성 설계도입니다.여러 클래스에 공통적으로 사용되는

자바를 학습하다 보면 package 라는 키워드를 자주 만나게 됩니다. 처음에는 단순한 폴더 개념처럼 보이지만, 실제로는 클래스의 관리, 충돌 방지, 배포, 보안 등 다양한 역할을 수행하는 중요한 개념입니다.이번 글에서는 자바의 패키지에 대해 자세히 알아보고, 실제 코

Java를 공부하다 보면 반드시 마주치는 개념 중 하나가 "형변환(casting)"입니다. 기본형(primitive type)에서도 형변환은 자주 사용되지만, 이번 글에서는 참조형(reference type)의 형변환에 초점을 맞춰 정리해 보겠습니다.기본형처럼 참조형도