본문 바로가기

Study59

[Live-Study] 상속 목표 자바의 상속에 대해 학습하세요. 학습할 것 (필수) 자바 상속의 특징 super 키워드 메소드 오버라이딩 다이나믹 메소드 디스패치 (Dynamic Method Dispatch) 더블 디스패치 추상 클래스 final 키워드 Object 클래스 이제야 반을 온 것 같습니다. (사실 아직 반도 안왔지만) 자주쓰는 상속의 개념인데 제대로 한번 정리해봣나 싶긴 합니다 ㅎㅎ 이번 기회에 자바의 상속에 대해 한번 제대로 알아보겠습니다. 자바 상속의 특징 상속(Inheritance) 부모가 소유하고 있는 재산의 일부를 자식이 물려받는 것을 생각해보면, 부모가 가진 것을 자식이 마음대로 쓰거나 그대로 쓰거나 선택할 수 잇습니다. 즉, 자식 클래스가 부모 클래스의 변수와 메소드를 물려 받아 쓰는 것입니다. 상속의 장.. 2021. 2. 25.
[Live-Study] 클래스 목표 자바의 Class에 대해 학습하세요. 학습할 것 (필수) 클래스 정의하는 방법 객체 만드는 방법 (new 키워드 이해하기) 메소드 정의하는 방법 생성자 정의하는 방법 this 키워드 이해하기 마감일시 2020년 12월 19일 토요일 오후 1시까지. 과제 (Optional) int 값을 가지고 있는 이진 트리를 나타내는 Node 라는 클래스를 정의하세요. int value, Node left, right를 가지고 있어야 합니다. BinrayTree라는 클래스를 정의하고 주어진 노드를 기준으로 출력하는 bfs(Node node)와 dfs(Node node) 메소드를 구현하세요. DFS는 왼쪽, 루트, 오른쪽 순으로 순회하세요. 늦게 시작한 감이있어 빠르게 하려하니 집중이 안되고, 정리도 대충하게 되는 .. 2021. 2. 18.
[SpringBoot] 커스텀 애노테이션으로 Password규칙 적용하기 스프링 프레임워크가 기본적으로 제공하는 Validator이외의 Validator를 구현해야할 순간이 있습니다. 스프링은 컨트롤러에서 클라이언트에서 넘겨받은 값에 대한 검증을 JSR-303 기반으로 쉽고 강력하게 할 수 있습니다. 또 한 커스텀 한 어노테이션을 쉽게 구현할 수 있고 확장도 용이합니다. 애노테이션을 직접 만들기 위해서는 2가지 클래스가 필요합니다. @interface 클래스, ConstraintValidator의 구현 클래스 아래에서 작성하는 어노테이션은 해당 Password가 유효한지 검사를 하는 애노테이션입니다. 애노테이션 정의 import javax.validation.Constraint; import javax.validation.Payload; import java.lang.anno.. 2021. 1. 28.
[IntelliJ] Column Selection Mode(컬럼 선택 모드) for mac 개발을 하다 여러 줄을 동시에 편집해야 하는 순간이 생깁니다. Column Selection Mode(컬럼 선택 모드)? 먼저 컬럼 선택 모드라 부르는 기능이 무엇인지 살펴볼 필요가 있습니다. public class Student { private int age; private int tall; private String name; private String phoneNum; public Student(int age, int tall, String name, String phoneNum) { this.age = age; this.tall = tall; this.name = name; this.phoneNum = phoneNum; } } 현재 Student 클래스의 인스턴스들은 private으로 선언되어 .. 2021. 1. 28.
[Live-Study] 제어문 목표 자바가 제공하는 제어문을 학습하세요. 학습할 것 (필수) 선택문 반복문 이번엔 과제가 많습니다. 옵션이긴 하지만.. 자바 기본 문법에 직결되는 부분이 많은거같아 다 진행해보려 합니다. 선택문을 진행하기 앞서, 조건문도 정리하면 좋을 것 같아 정리했습니다. 조건문 if(조건문)에서 사용되는 조건문이란 참과 거짓을 판단하는 문장을 말합니다. 조건문이 참인지 거짓인지 따라 실행문의 제어가 결정되는데요 에제를 통해 바로 알아보도록 하겠습니다. if 문, 나이가 20살 이하인 학생은 어린 학생으로 보겠다 class Student { int age; int tall; public Student(int age, int tall) { this.age = age; this.tall = tall; } public b.. 2021. 1. 27.
[Live-Study] 연산자 목표 자바가 제공하는 다양한 연산자를 학습하세요. 학습할 것 산술 연산자 비트 연산자 관계 연산자 논리 연산자 instanceof assignment(=) operator 화살표(->) 연산자 3항 연산자 연산자 우선 순위 (optional) Java 13. switch 연산자 2주차까지 하며, 그동안 대충 알고있던 개념들을 확실히 잡을 수 있었습니다. 3주차도 부족하지 않은 정리를 해볼까합니다. 연산자(Operator)? 여러종류의 연산자 를 살펴보기 전, 연산자란 무엇인가에 대해 살펴볼 필요가 있습니다. 연산자는 변수와 값에 대한 작업을 수행하는데 쓰이는데 사용됩니다. 아래의 예제에선 + 연산자를 사용하여 두개의 값을 더하는 것을 볼 수 있습니다. int x = 100 + 50; + 연산자는 위의 예.. 2021. 1. 27.
[Live-Study] 자바 데이터 타입, 변수 그리고 배열 목표 자바의 프리미티브 타입, 변수 그리고 배열을 사용하는 방법을 익힙니다. 학습할 것 프리미티브 타입 종류와 값의 범위 그리고 기본 값 프리미티브 타입과 레퍼런스 타입 리터럴 변수 선언 및 초기화하는 방법 변수의 스코프와 라이프타임 타입 변환, 캐스팅 그리고 타입 프로모션 1차 및 2차 배열 선언하기 타입 추론, var 2주차가 시작되었습니다. 정리도 우선이지만 쉽게 이해할 수 있게 정리해보는 것을 목표로 했습니다. 프리미티브 타입 종류와 값의 범위 그리고 기본 값 타입(Data type)이란 해당 데이터가 메모리에 어떻게 저장되고, 프로그램에서 어떻게 처리되어야 하는지를 명시적으로 알려주는 것입니다. 자바에서 타입은 크게 기본형(프리미티브) 타입과 참조형(래퍼런스) 타입이 있습니다. 프리미티브 타입은.. 2021. 1. 27.
[Live-Study] JVM은 무엇이며 자바 코드는 어떻게 실행하는 것인가. 목표 자바 소스 파일(.java)을 JVM으로 실행하는 과정 이해하기 Overview JVM이란 무엇인가 컴파일 하는 방법 실행하는 방법 바이트코드란 무엇인가 JIT 컴파일러란 무엇이며 어떻게 동작하는지 JVM 구성 요소 JDK와 JRE의 차이 기선님이 주최하신 live-study 1주차입니다. 자바 개발자라고 떳떳히 말할 수 있을 기본기를 쌓아가는 과정입니다. JVM이란 무엇인가 이부분은 이전에 정리한 포스트로 대체하겠습니다. [Java] JVM이란? 컴파일 하는 방법 windows 기준으로 컴파일 하는 방법을 정리하겠습니다. 컴파일을 한다는 것은 .java파일을 .class 파일(바이트 코드)로 만드는 것을 의미합니다. JDK(Java Developer Kit) 자바 개발 도구를 설치하면 bin디렉토.. 2021. 1. 27.
[Java] VO(Value Object)란? 개발을 하다 자주 VO라는 개념을 들은적이 있습니다. 대략적으로 값 객체 패턴(Value object pattern) 즉, 객체를 값처럼 쓸 수 있고, 제약사항 중 하나는 객체의 인스턴스 변수가 생성자를 통해서 일단 설정된 후에는 결코 변하지 않음을 보장한다는 것입니다. 저도 위와 같이 얕게만 알고있었는데, 이번 기회를 통해 제대로 알아보려 합니다. 제가 봤던 재미난 글을 통해 포스팅을 작성하려합니다. VO(Value Object)? 만약 아래와 같은 질문을 받았다고 생각해봅시다. 사람의 나이를 나타내기 위해 어떠한 변수 타입을 사용해야 할까요? [] Integer [] Boolean [] String 어떠한 결정을 내릴건가요? "Boolean은 true, false니까.. 일단 아니고,, Integer.. 2021. 1. 26.