Backend/Java 45

제네릭 (Generic)

안녕하세요. 이번 포스팅은 제네릭(Generic)에 대해 간단하게 알아볼게요. 제네릭(Generic) 제네릭은 데이터타입을 일반화(Generalize)하는 것으로 클래스나 메서드를 선언할 때, 구체적인 타입을 명시하지 않고, 사용 시점에 지정할 수 있도록 하는 기능이에요. 제네릭의 타입 매개변수 제네릭의 타입 매개변수는 총 네 가지 T, K, V, E 가있는데요. 작성되는 실실적인 타입을 전달해 줘요. 그럼 각각 의미와 사용 용도를 알아볼까요? : Type의 약자로 아무 타입이나 들어올 수 있어서 가장 흔하게 사용해요. : Key의 약자로 Map 구조에 주로 사용하면서 키타입을 표현할 때 사용해요. : Value의 약자로 Map 구조에 주로 사용하면서 값 타입을 표현할 때 사용해요. ** 와 ..

Backend/Java 2025.07.23

Java 기초 테스트

안녕하세요. 전 포스팅은 기본 코딩연습문제를 알아봤는데요. 이번에는 자바의 기초 테스트를 간단하게 알아볼까 해요. 내가 얼마나 기초이론을 이해했는지 알아볼 수 있는 시간이었으면 좋겠어요. 답은 글자색을 흰색으로 설정이 되어서 드레그 하시면 잘 보입니다! 그럼 한번 같이 풀어볼까요? ------------------------------- ------------------------------- ------------------------------- 1. 자바에서 모든 클래스의 최상위 부모 클래스는 무엇입니까?정답: Object→ 자바의 모든 클래스는 암시적으로 Object 클래스를 상속받음→ Object 클래스가 가진 toString(), equals() 등의 메서드를 기본적으로 가짐 2. ArrayL..

Backend/Java 2025.07.23

Java의 기초 테스트 1편 - 코딩 해설

안녕하세요 오늘은 기초 테스트 1편 코딩문제를 보고 간단하게 해석을 하면서 같이 코딩을 해보기로 해요. 저도 코딩에 익숙하지 못하지만 함께 풀어 볼까요? 코드 구현 문제 다음 요구사항을 만족하는 코드를 작성하세요. 요구사항int 타입의 변수 num1에 10, double 타입의 변수 num2에 3.5를 저장합니다.두 변수를 더한 결과를 double 타입의 변수 result에 저장합니다.결과 값을 출력합니다.public class Note { public static void change(String[] data, String s) {// 변수 선언 및 초기화int num1 = 10; // int 타입 변수 num1에 10 저장double num2 = 3.5; // double 타입 변수 nu..

Backend/Java 2025.07.22

Java의 기초 테스트 1편 - 코딩

안녕하세요 오늘은 특별한 내용을 들고 왔는데요. 바로 Java를 공부하시는 분들을 위한 간단한 문제를 드리고자 작성해 봐요! 처음에 저도 이론만 이해했지 직접 문제를 보고 코딩을 완성시키기가 매우 어려웠답니다.(대부분 못했어요 ㅜㅜ) 주변 사람들은 쉽게 풀 수 있지만 저같이 첫 발을 내민 준비생이라면 힘들 수 있는 그런 문제들이에요. 꾸준한 연습을 하시면 잘하실 거라 굳게 믿고 있어요! 그럼 코딩문제를 드릴게요! 모범답안지는 다음 포스팅 때 올려드릴게요. 한번 도전해 보세요! 코드 구현 문제 다음 요구사항을 만족하는 코드를 작성하세요. 요구사항int 타입의 변수 num1에 10, double 타입의 변수 num2에 3.5를 저장합니다.두 변수를 더한 결과를 double 타입의 변수 resu..

Backend/Java 2025.07.21

Lombok 설정 방법

안녕하세요. 이번에는 롬복(Lombok)에 대한 간단한 설명과 인텔리제이에 적용 방법을 알아보겠습니다. 롬복(Lombok) 롬복은 자바에서 반복적으로 작성해야 하는 보일러플레이트(boilerplate) 코드를 줄여주는 라이브러리인데요. 어노테이션(코드 주석)을 사용하여 코드를 간결하게 만들어 주는 역할을 하고 있어요. 그럼 대표적인 보일러 플레이트 코드를 간단하게 알아볼까요? 보일러 플레이트 코드 보일러 플레이트 코드는 프로그래밍에서 반복되는 작업이나 패턴에 대한 일종의 표준화된 코드이고. 대표적인 코드는 Getter / Setter, toString(), "생성자", 빌더 패턴 이 있어요. 코딩 공부를 하시면서 많이 접해왔던 코드들인데요. 롬복을 Java에 적용하는 법을 알아볼까요? 롬복..

Backend/Java 2025.07.17

MVC

안녕하세요. 이번시간에는 MVC라는 패턴에 대해 알아볼까 해요. MVC 패턴이란? 사용자가 인터페이스를 설계하는 소프트웨어 디자인 패턴 중 하나로 Model(모델), View(뷰), Controller(컨트롤러) 구성요소를 가지고 있어요. 세 가지의 구성 요소의 역할분담으로 개발 진행하는데 하나하나 알아가 볼까요? Model Model(모델)은 데이터와 비즈니스 로직을 담당하고 있어요. 데이터베이스와 연동, 데이터 처리 등을 수행하고, 상태 변경에 대한 View와 Controller에게 알릴 수 있는 메커니즘을 제공하고 있습니다. View와 Controller의 세부 구현사항으로 독립적으로 실행 단 직접 UI를 다루지 않는 점이 특징이에요. View View(뷰)는 사용자에게 데이터를 표시..

Backend/Java 2025.07.15

OOP-SOLID 원칙

안녕하세요 이번에는 객체 지향 프로그래밍(OOP)에서 유지보수성과 확장성이 좋은 코드를 작성하기 위한 5가지의 원칙 SOLID원칙에 대해 알아볼게요. SOLID는 5가지의 원칙 SRP, OCP, LSP, ISP, DIP의 앞자리를 따서 만든 이름이랍니다. 여기서 5가지의 원칙에 대해 알아보고 잘못된 예시와 올바른 예시로 비교도 해볼게요. 1. SRP(Single Responsibility Principle) 첫 번째 SRP는 단일 책임 원칙 즉 "클래스는 단 하나의 책임만을 가져야 한다"입니다. 클래스 당 한 가지 역할(기능)만 담당 / 하나의 변화 이유만을 가져야 하고, 하나의 클래스가 가지는 하나의 역할과 관련된 변경사항만 클래스에 영향을 미쳐야 한다는 원칙을 가집니다. 간단한 예시를 한번 볼..

Backend/Java 2025.07.14

예외 처리(Exception Handling) try, catch, finally

안녕하세요. 이번에는 예외 처리(Exception Handling)를 위해 꼭 필요한 기본 문법try, catch, finally에 대해 알아볼게요! 하나 하나의 차이점이 아닌 전부 다 사용하기 때문에 사용법을 간단하게 알아볼게요! 1. try 블록 try는 예외가 발생할 수 있는 코드를 넣습니다. 그리고 예외가 발생을 한다면 곧바로 catch로 넘기는 친구에요 2. catch 블록 catch는 try블록에서 발생하는 특정 예외를 잡아 처리하는 곳이에요. catch는 여러 개를 사용해 다양한 예외별로 다르게 처리할 수도 있답니다! 3. finally 블록 finally는 앞에 두 친구랑 다르게 예외 발생 여부와 상관없이 무조건 실행되는 코드에요. try - catch 없이 바로 try - finall..

Backend/Java 2025.07.12

this vs super vs final

안녕하세요. 이번에는 super와 this, final의 차이점을 확인해볼 건데요. 자주 사용하는 키워드인 만큼 역할과 쓰임새가 확실히 다르기 때문에 이번시간으로 비교를 해보면서 하나씩 배워볼까요? this this는 뜻 그대로 내가 지금 사용하는 객체 자신을 가리키는 친구예요. 같은 클래스 안에 필드와 지역 변수 이름이 같을 때 구분하거나, 현재 객체를 참조할 때 사용해요. class Person { String name; Person(String name) { this.name = name; // 필드와 매개변수 구분용 } void print() { System.out.println(this.name); } Person() { ..

Backend/Java 2025.07.12

상속과 구현(extends VS implements)

안녕하세요. 이번에는 상속과 구현(extends vs implements)의 차이점을 알아볼 거예요. 제가 첫 상속이라는 공부를 할 때 왜 이걸 쓰는지 잘 몰랐어요. 생각보다 간단하니 가볍게 차이점을 알아볼게요. 상속(extends) 상속은 클래스가 클래스를 상속할 때 인터페이스가 다른 인터페이스 상속할 때 사용한답니다. 이 뜻은 같은 친구들끼리 상속할 때만 사용할 수 있는 친구예요. class Animal { void breathe() { System.out.println("숨 쉬어요"); }}class Dog extends Animal { void bark() { System.out.println("멍멍"); }}Dog dog = new Dog();d..

Backend/Java 2025.07.12