목록[백엔드]/[Java | 학습기록] (29)
개발자로 후회없는 삶 살기

서론자바의 객체 정렬 기준에 대해 알아봅니다. 본론- Comparator와 Comparable객체 정렬에 필요한 메서드를 정의한 인터페이스로 정렬 기준을 제공하는 것이 목적입니다. class Student { String name; int ban; int totalScore;}즉, 객체를 비교할 수 있도록 만듭니다. 자바에서 제공하는 primitive 타입은 부등호 비교가 가능하지만 Student 클래스는 이름, 학급, 점수 중 어떠한 것을 정렬 기준으로 비교해야 하는지 알 수 없고 정해줘야 합니다. 이때, 정렬 기준 인터페이스를 사용하여 메서드를 재정의 함으로써 정렬 기준을 명시합니다. public interface Comparable { public int compareTo(T ..

서론왜 람다를 사용하는지 특징과 목적을 알아보겠습니다. 본론자바에서는 이렇게 코드 블록을 어딘가에 전달하는 경우가 있고 그러면 해당 코드가 어딘가에서 사용됩니다. 근데 이렇게 어딘가에 코드 블록을 전달하는 일이 쉽지 않습니다. 자바는 객체지향이기 때문에 원하는 코드가 있는 메서드를 포함하는 클래스를 생성해야 합니다. Comparator를 구현한 Length 클래스는 compare 코드 블록을 어딘가에 전달하기 위해 구현되고 생성되었습니다. 현재는 sort에 전달되어 호출됩니다. - 람다 표현식 문법앞에서 본 예제에서는 한 문자열이 다른 문자열보다 짧은지 여부를 검사하는(compare) 코드를 전달합니다. 이를 람다로 표현해보면 (파라미터, ->, 원하는 코드) 형태를 가집니다. 람다 표현식의 파라미터 타..

서론※ 과거에 기록한 내용에서 중요한 부분만 발췌하여 모두가 이해하기 쉽게 다시 서술한다. 본론- 열거형public enum WeekType { MONDAY, TUESDAY}열거형은 한정된 값을 가지는 상수들의 집합이다. 열거형을 사용하면 상수값을 편하게 사용할 수 있다. public class WeekType { public static final WeekType MONDAY = new WeekType();}enum은 위 코드와 사실상 같다. 클래스 내부에 열거형 객체를 상수로 가지고 있는 것이다. - name과 필드public enum WeekType { MONDAY("월요일"), TUESDAY("화요일"); String desc; private Wee..

서론※ 과거에 기록한 내용에서 중요한 부분만 발췌하여 모두가 이해하기 쉽게 다시 서술한다. 본론- 추상 클래스란?public abstract class Car { public abstract void drive(); public abstract void stop();}추상 메서드를 가지는 클래스로, 추상 메서드를 가지는 것 외에는 일반 클래스와 다른 게 없다. 추상 메서드란 함수 원형만 있고 코드 블럭 내부는 비어 있는 메서드를 의미한다. 이제부터 추상 클래스와 추상 메서드를 왜 사용하고 어떠한 특징을 가지고 있는지 알아보자 -> 추상 클래스가 되는 조건 ✅1. 부모 클래스로서 추상 메서드를 가짐2. 자식 클래스인데 부모인 추상 클래스의 추상 메서드를 구현하지 않고 추상 메서드로 유지함추상 클..

서론※ 과거에 기록한 내용에서 중요한 부분만 발췌하여 모두가 이해하기 쉽게 다시 서술한다. 본론- 상속이란?부모 클래스의 멤버를 자식 클래스에서 사용할 수 있도록 물려 주는 것으로, 단어 뜻과 유사한 방식으로 동작한다. 실제로, 부모 클래스에 작성한 필드와 메서드를 자식 클래스에서 작성한 것처럼 사용할 수 있다. public class Animal { protected String color; private String name; protected void speak() { System.out.println("동물이 어떻게 말한다."); }}public class Lion extends Animal {}자식인 Lion이 Animal을 상속 받는 코드이다. Lion에는 코..

서론※ 과거에 공부한 내용에서 중요한 부분만 발췌하여 모두가 이해하기 쉽게 다시 서술한다. 본론- 접근 지정자-> 접근 지정자의 목적public class A { public int a; protected int b; int c; private int d;}자바는 객체 지향 언어로 캡슐화, 추상화, 상속화, 다형화라는 특징을 가진다. 그 중 캡슐화를 만족하기 위해 접근 지정자를 사용한다. 캡슐화란 클래스를 하나의 캡슐처럼 외부와 독립된 공간으로 보고 외부와 적절히 상호작용하는 것을 목표로 한다. 외부와 적절히 상호 작용을 하기 위해선 데이터의 I/O가 있어야 하는데 접근 지정자를 사용하면 클래스 내부 데이터의 접근 권한을 조절하여 데이터의 흐름을 제어할 수 있다. -> 종류publi..

서론 ※ 이 포스트는 다음 강의의 학습이 목표임을 밝힙니다. https://www.inflearn.com/course/the-java-code-manipulation 더 자바, 코드를 조작하는 다양한 방법 - 인프런 | 강의 여러분이 사용하고 있는 많은 자바 라이브러리와 프레임워크가 "어떻게" 이런 기능을 제공할 지 궁금한적 있으신가요? 이번 강좌를 통해 자바가 제공하는 다양한 코드 또는 객체를 조작하는 방 www.inflearn.com 본론 바이트 코드를 조작하는 예제를 들어보겠습니다. - 코드 커버리지 현재 신청이 꽉 찼는지 확인하는 메서드가 있습니다. max가 0이면 무한대로 신청을 받는 것이고 현재 신청 수가 max보다 적어도 full이 아닙니다. 이에 대한 테스트 코드를 작성합니다. 코드 커버리..

서론 ※ 이 포스트는 다음 강의의 학습이 목표임을 밝힙니다. https://www.inflearn.com/course/%EB%94%94%EC%9E%90%EC%9D%B8-%ED%8C%A8%ED%84%B4/dashboard 코딩으로 학습하는 GoF의 디자인 패턴 - 인프런 | 강의 디자인 패턴을 알고 있다면 스프링 뿐 아니라 여러 다양한 기술 및 프로그래밍 언어도 보다 쉽게 학습할 수 있습니다. 또한, 보다 유연하고 재사용성이 뛰어난 객체 지향 소프트웨어를 개발할 www.inflearn.com 본론 - 패턴 소개 특정한 객체를 접근하기 전에 프록시를 먼저 지나도록 하는 패턴으로 대리인이라는 사전 뜻을 가집니다. 클라이언트가 원래 사용하려는 객체를 직접 쓰는 게 아니라 대리인을 거쳐서 쓰는 패턴입니다. 맨 처..