Blog blog = new Korea()

Java 18

[Java] 공변성 A/S (feat. 상속과 오버라이딩)

🤪 아직도 어려운 공변성22년도 9월쯤 쓴 글이 있다.바로 Covariant(공변성)에 관한 글이다. 기존에 썼던 글을 보강하기 위해 이 글을 쓰게 됐다.기존글2022.09.02 - [Java] - [Java] Covariant(공변성)에 관한 간단한 이야기 [Java] Covariant(공변성)에 관한 간단한 이야기📝 객체지향 5원칙(SOLID) SOLID는 객체지향 5원칙의 두음을 따서 만든 말이다. 각각 나열하자면, SRP(단일 책임 원칙) OCP(개방 폐쇄 원칙) LSP(리스코프 치환 원칙) ISP(인터페이스 분리 원칙) DIP(의존codari.tistory.com 객체지향 5원칙 중 LSP에 관한 글을 쓰다가 막혔던 부분이 있다. 또한, three메서드를 보면 분명히 B 생성자를 통해 객체를..

Java 2024.08.05

[토비의스프링] 토비의 스프링을 읽어보자

스프링하면 떠오르는 서적이 무엇이 있는가? 나는 십 수년이 지난 지금에도 스프링을 하면 "토비의 스프링"을 먼저 떠올리곤 한다. 다만, 이 책을 제대로 읽어본 적은 없다. 앞부분을 읽다 말다 하고, 오랜만에 다시 책을 펼치려고 하면 다시 처음부터 펼쳤기 때문에. 결국 돌고돌아 계속 앞부분만을 읽어나간 것이다.이젠 미뤘던 숙제를 끝내보려고 한다. 시간이 조금 걸리더라도 토비의 스프링을 완독하려고 한다. 읽어나가면서 이해가 안되는 부분은 실습도 같이 병행할 예정이다. 간간히 독후감(?)을 쓰듯 블로그에 글을 등록하겠다. 되도록이면 실습 코드를 함께 올리는 쪽으로 진행하도록 하겠다. 스프링의 이해와 원리를 담은 토비의 스프링1은 반드시 리뷰를 거칠 예정이지만, 기술과 활용의 내용을 담은 토비의 스프링2는 어떻..

Java/Spring 2024.07.14

[Spring] Spring Framework + IoC와 DI

📢 스프링? 짧게 한 마디! Spring Framework를 짧게 한 마디로 정의하면 아래와 같이 정의할 수 있다. 자바 엔터프라이즈 개발을 편하게 해주는 오픈소스 경량급 애플리케이션 Spring은 다양한 모듈(beans, JDBC 등)과 프로젝트(Boot, Security 등)를 지원함을 통해서 개발자가 좀 더 비지니스 로직에 집중할 수 있도록 해주는 프레임워크다. 즉, 개발자로 하여금 비기능적 요구사항들을 개발할 때, 필요한 인프라를 제공한다. 이는 표면적으로 보이는 일부만을 표현한 내용이고, 깊게 들어가면 더 많은 편의를 제공한다. 📌Spring의 핵심! Spring의 핵심 개념은 DI, AOP, PSA, POJO 총 4가지로 구성되어 있다. 오늘은 이 중 DI에 대해서 짤막하게 설명하려고 한다. ..

Java/Spring 2022.10.12

[Java] 메서드 오버로딩 vs 오버라이딩

🤔 비슷한 이름, 전혀 다른 사용법 오버로딩과 오버라이딩은 명칭만 보면 상당히 비슷한 작업을 수행할 것 같다. 하지만 둘은 전혀 전혀 전혀 전혀 다른 작업을 수행한다. 지금부터 그 차이를 알아보도록 하자. 📝오버로딩 (overloading) 메서드를 오버로딩한다는 것은 언어 그대로 보면 오히려 어려울 수 있다. 간단히 개념만 보자면, 다른 파라미터가 필요한 같은 이름의 메서드를 만드는 것이라고 보면 된다. public class Overloading { String id; String name; int count; public Overloading(String id, String name) { this.id = id; this.name = name; this.count = 0; } public Overl..

Java 2022.09.28

[Java] 자바의 파라미터

📝 파라미터란? 파라미터는 메서드 시그너처 마지막 괄호 안에 들어가는 매개변수를 의미한다. 파라미터를 이용하면 메서드 내에서 파라미터로 받아온 매개변수에 대한 정보를 처리할 수 있고, 이후 결과를 반환할 수 있다. public class Parameter { public static void main(String[] args) { System.out.println(parameterMethod(10, "30")); } public static int parameterMethod(int i, String s) { return i + Integer.parseInt(s); } } parameterMethod는 int형 매개변수 i와 숫자로 받은 String형 s를 더한 값을 return하는 메서드이다. 간단한 ..

Java 2022.09.27

[Java] Finally절

😤 이건 무조건 실행시켜줘! finally 예외를 처리하는 try-catch문과 자주 쓰이는 친구가 있다. 바로 'finally'. 한글로 해석해도 마지막으로 라는 의미가 있는 이 친구는 예외를 처리하고 나서 '마지막으로' 해당 블록 안에 있는 코드를 실행시켜준다. 그렇다면, finally는 보통 어떻게 쓰일까? 📝 finally의 활용 우선, 중복 코드를 방지할 수 있다. import java.time.DateTimeException; public class TestFinally { public static void main(String[] args) { try { int minute = Integer.parseInt(args[0]); if (minute = 60) { thr..

Java 2022.09.24

[Java] 내가 예외를 '던지는' 법

🤔 스스로 죽음을 택한다고? 외국 좀비 영화나 만화를 보면 가끔 그런 대사들이 있다. '내가 잘못될 거 같으면 네 손으로 나를 죽여줘.' 이렇게 나 스스로가 주변에 문제를 일으킬 것 같을 때, 스스로 죽음을 택하기도 한다. 프로그래밍에서도 뭔가 문제가 될 것 같은 코드에 직접 예외를 던지는 코드를 작성한다. 왜냐하면 만약 문제가 발생했는데 컴퓨터가 별 문제없다고 판단하고 그냥 실행시킬 수 있기 때문이다. 예외를 던진다는 표현을 사용하는데, 그 이유는 이런 경우 throw문을 작성하기 때문이다. import java.time.DateTimeException; public class ExceptionPractice { public static void main(String[] args) { try { int..

Java 2022.09.22

[Java] 예외를 다루는 몇 가지 방법

2022.09.20 - [Java] - [Java] 예외 처리의 이유와 종류 [Java] 예외 처리의 이유와 종류 🤗예외는 싫은데 예외 처리는 좋아요 Error와 같은 예외가 발생하는 경우 프로그램은 정상적으로 작동하기 어렵다. 대부분의 경우에서 예외는 프로그램이 정상적으로 동작하지 않기 때문에, codari.tistory.com 💻 예외 처리 방법은 뭘까? 저번에는 예외 처리의 이유와 종류에 대해서 조금 알아봤다. 이번에는 예외를 처리하는 몇 가지 방식에 대해서 알아보려고 한다. 사실 몇 가지 방식이라고 얘기하기도 무안한 것이 try-catch문이 전부이기 때문이다. 또한, 자바의 try-catch문은 조건도 상당히 간단하다. public class Handler { public static void ..

Java 2022.09.21

[Java] 예외 처리의 이유와 종류

🤗예외는 싫은데 예외 처리는 좋아요 Error와 같은 예외가 발생하는 경우 프로그램은 정상적으로 작동하기 어렵다. 대부분의 경우에서 예외는 프로그램이 정상적으로 동작하지 않기 때문에, 프로그램을 종료시켜 어떠한 문제가 있음을 알기 쉽지만, 가끔은 문제가 발생해도 컴퓨터는 심각한 문제로 생각하지 않아서 프로그램을 그대로 동작시키는 경우가 있다. 이런 경우 개발자가 예상하지 않았던 방향으로 프로그램이 흘러가기 때문에, 아주 큰 문제가 발생할 가능성이 높다. 이러한 문제를 예방하고자 자바에서는 예외 처리를 지원한다. 📑예외 객체의 종류 자바에서 예외 객체의 종류는 총 3가지로 나뉜다. Checked 예외 - RuntimeException의 하위 클래스를 제외한 Exception의 모든 하위 클래스 : 필수적으..

Java 2022.09.20