일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 월간회고
- Blue-Green
- 주간회고
- useQuery
- N+1
- java
- 카카오 2차 코딩테스트
- 클래스
- 블로그 병행
- 계층별 구조
- 멀티쓰레드 프로그래밍
- InnoDB 버퍼 풀
- ci/cd
- 어댑티브 해시 인덱스
- 우테코
- 백기선 스터디
- SQL 실행순서
- db
- 도커
- 프리코스
- mysql
- Jenkins
- B+TREE
- 기능별 구조
- useMutation
- DeleteAll
- 메서드명
- 회고
- BalancedTree
- jacoco
- Today
- Total
목록백기선 스터디 (15)
Haneul's Blog

목표 [백기선 자바 스터디 15주차] 자바의 람다식에 대해 학습하세요. 학습할 것 람다식 사용법 함수형 인터페이스 Variable Capture 메소드, 생성자 레퍼런스 람다식 사용법 람다식이란? 람다식은 메서드를 하나의 식으로 표현한 것입니다. 함수를 간략하면서도 명확하게 표현할 수 있게 해주며 메서드를 람다식으로 표현하면 메서드의 이름과 반환값이 없어져서 람다식을 익명 함수라고도 합니다. 자바에서의 모든 메서드는 클래스에 포함되어야 해서 일반적으로는 클래스를 만들고 객체를 생성해야 메서드를 호출할 수 있습니다. 하지만 람다식은 오직 람다식 자체만으로 메서드의 역할을 할 수 있게 해줍니다. 람다식 작성법 (a, b) -> {return a + b}; // 일반적인 람다식 (a, b) -> a + b; ..
목표 [백기선 자바 스터디 14주차] 자바의 제네릭에 대해 학습하세요. 학습할 것 제네릭 사용법 제네릭 주요 개념 (바운디드 타입, 와일드 카드) 제네릭 메소드 만들기 Erasure 제네릭(Generics)이란? 제네릭은 다양한 타입의 객체를 다루는 메서드나 컬렉션 클래스에 컴파일 시의 타입 체크(compile-time type check)를 해주는 기능입니다. 객체의 타입을 컴파일 시에 체크하기 때문에 객체의 타입 안정성을 높이고 형변환의 번거로움을 줄여줍니다. 그렇다면 타입 안정성을 높인다는 것을 정확히 무슨 의미일까요? 의도하지 않은 타입의 객체가 저장되는 것을 막고, 저장된 객체를 꺼내올 때 원래의 타입과 다른 타입으로 잘못 형변환 되어 발생할 수 있는 오류를 줄여준다는 것입니다. 제네릭을 사용해..

목표 [백기선 자바 스터디 13주차] 자바의 Input과 Ontput에 대해 학습하세요. 학습할 것 스트림 (Stream) / 버퍼 (Buffer) / 채널 (Channel) 기반의 I/O InputStream과 OutputStream Byte와 Character 스트림 표준 스트림 (System.in, System.out, System.err) 파일 읽고 쓰기 스트림/버퍼/채널이란? 스트림 스트림은 흐름이라는 뜻을 가지고 있습니다. 람다의 스트림과 헷갈릴 수 있지만 전혀 다른 것입니다. 여기서 말하는 스트림은 입력에서 출력으로 흐르는 단방향 데이터 흐름을 말하는데, 자료의 입출력을 도와주는 중간 통로(매개체)라고 생각하면 좋을 것 같습니다. 그렇다면 여러 개의 데이터를 하나의 스트림으로 보낸다고 생각하..

목표 [백기선 자바 스터디 12주차] 자바의 애노테이션에 대해 학습하세요. 학습할 것 애노테이션 정의하는 방법 @retention @target @documented 애노테이션 프로세서 애노테이션 애노테이션은 주석과 비슷하게 어떠한 코드에 설명을 달아준다고 생각하면 됩니다. 하지만 애노테이션이 달린 코드에는 실제로 어떠한 기능을 부여할 수 있다는 점이 주석과는 크게 다릅니다. 즉, 다른 데이터를 설명해주는 메타데이터의 한 형태라고 할 수 있습니다. 그렇다면 이 애노테이션은 왜 사용하는 것일까요? 위에서 말했다시피 어떠한 기능을 부여하기 위해서 사용하는데 아래와 같은 기능들을 제공해줍니다. 컴파일러에 제공하는 정보 -> 컴파일러는 애노테이션을 사용하여 에러를 체크하거나 에러 메시지를 억제할 수 있습니다. ..
목표 [백기선 자바 스터디 11주차] 자바의 열거형에 대해 학습하세요. 학습할 것 enum 정의하는 방법 enum이 제공하는 메소드 (values()와 valueOf()) java.lang.Enum EnumSet Enum이란? enum은 서로 관련된 상수를 편리하게 선언하기 위한 것으로 상수를 여러 개 정의할 때 사용합니다. enum은 여러 상수를 정의한 후, 정의된 것 이외의 값은 허용하지 않습니다. 간단하게 enum을 정의하는 방법은 아래와 같습니다. public enum Car { Bently, K3, Audi, } enum은 왜 나왔을까요? 사실 enum을 처음 보았을 때 굳이 이걸써야 하나? 라는 생각을 했어서 그냥 넘어갔던 기억이 있습니다. 하지만 새로운 것이 나온 것에는 대부분 이유가 있기 ..

목표 [백기선 자바 스터디 10주차] 자바의 멀티쓰레드 프로그래밍에 대해 학습하세요. 학습할 것 Thread 클래스와 Runnable 인터페이스 쓰레드의 상태 쓰레드의 우선순위 Main 쓰레드 동기화 데드락 먼저 간단하게 Thread가 무엇인지와 Process가 무엇인지 그리고 둘의 차이점이 어떤 점이 있는지부터 간단하게 알아보고 가겠습니다. Process와 Thread 먼저 프로세스는 실행 중인 프로그램으로 어떤 프로그램이 운영체제에 의해서 메모리 공간을 할당받아 실행 중인 것을 말합니다. 이러한 프로세스는 프로그램에 사용되는 데이터와 메모리 등의 자원 그리고 쓰레드로 구성이 됩니다. 그렇다면 쓰레드는 무엇일까요? 쓰레드는 프로세스 내에서 실제로 작업을 수행하는 주체로, 모든 프로세스는 하나 이상의 쓰..

목표 [백기선 자바 스터디 9주차] 자바의 예외 처리에 대해 학습하세요. 학습할 것 자바에서 예외 처리 방법 (try, catch, throw, throws, finally) 자바가 제공하는 예외 계층 구조 Exception과 Error의 차이는? RuntimeException과 RE가 아닌 것의 차이는? 커스텀한 예외 만드는 방법 자바에서 예외 처리를 하는 방법을 알아보기 전에 먼저 예외(Exception)란 무엇이고 에러(Error)란 무엇인지 그리고 이 둘의 차이를 잠깐 정리하겠습니다. 예외(Exception)와 에러(Error) 에러는 시스템의 비정상적인 상황이 생겨 프로그램이 비정상적으로 종료되는 것입니다. 이러한 에러는 컴파일 에러와 런타임 에러로 구분할 수 있는데, 컴파일 에러는 말 그대로 ..
목표 [백기선 자바 스터디 8주차] 자바의 인터페이스에 대해 학습하세요. 학습할 것 인터페이스 정의하는 방법 인터페이스 구현하는 방법 인터페이스 레퍼런스를 통해 구현체를 사용하는 방법 인터페이스 상속 인터페이스의 기본 메소드 (Default Method), 자바 8 인터페이스의 static 메소드, 자바 8 인터페이스의 private 메소드, 자바 9 인터페이스 정의하는 방법 인터페이스를 정의하는 방법을 알기 전에 먼저 인터페이스가 무엇인지부터 가볍게 알고 넘어가겠습니다. 인터페이스란? 인터페이스는 일종의 추상클래스로 추상메서드를 갖지만 추상클래스보다 추상화의 정도가 높아서 추상클래스와 달리 일반 메서드 또는 멤버변수를 구성원으로 가질 수 없습니다. 즉, 오직 추상메서드와 상수만을 멤버로 가질 수 있으며..
목표 [백기선 자바 스터디 7주차] 자바의 패키지에 대해 학습하세요. 학습할 것 package 키워드 import 키워드 클래스패스 CLASSPATH 환경변수 -classpath 옵션 접근지시자 package 키워드 자바에서 클래스가 많아지면 이를 한 곳에서 관리하기가 힘듭니다. 이를 관련된 파일끼리 폴더별로 관리하게 되는데 이를 관리하는 폴더를 자바에서는 패키지라고 합니다. 패키지의 특징 한 폴더에 같은 이름의 클래스가 2개 이상 올 수 없습니다. 소스의 가장 첫 줄에 있어야 하고, 패키지 선언은 소스 하나에 하나만 있어야 합니다. 패키지 이름과 위치한 폴더의 이름이 같아야 합니다. 패키지 이름을 java로 시작하면 안됩니다. 패키지 이름은 모두 소문자여야 합니다. -> 모든 클래스에는 정의된 클래스 ..
목표 [백기선 자바 스터디 6주차] 자바의 상속에 대해 학습하세요. 학습할 것 자바 상속의 특징 super 키워드 메소드 오버라이딩 다이나믹 메소드 디스패치 (Dynamic Method Dispatch) 추상 클래스 final 키워드 Object 클래스 자바 상속의 특징 상속이라는 뜻은 부모의 유산을 물려받는 것을 의미합니다. 자바에서의 상속도 마찬가지로 부모 클래스의 변수와 메서드를 물려 받는 것을 의미하는데 이러한 상속을 통해서 코드의 재사용성 및 코드의 간결성을 확보해줍니다. 이러한 상속은 아래와 같이 extends라는 키워드로 상속받을 수 있습니다. class Phone{} class IPhone extends Phone{} 상속은 부모 클래스의 변수나 메서드를 물려받는다고 했는데 그렇다고 모든 ..
목표 [백기선 자바 스터디 5주차] 자바의 Class에 대해 학습하세요. 학습할 것 클래스 정의하는 방법 객체 만드는 방법 (new 키워드 이해하기) 메서드 정의하는 방법 생성자 정의하는 방법 this 키워드 이해하기 클래스를 정의하는 방법 Java는 대표적인 객체지향 언어이고 객체 부분을 만들어 내기 위한 틀(설계도)을 클래스라고 하고 객체의 상태를 나타내는 필드, 객체의 메시지(행동)을 나타내는 메서드로 구성되어 있습니다. 어떻게 구성되어 있고 정의가 무엇인지 알아보았지만 어떻게 정의 할 수 있는지는 말로만 해서 설명이 힘들 것 같아 클래스를 정의하기 위한 방법은 아래의 Phone 클래스 예시와 밑의 설명을 보면 좋을 것 같습니다. public class Phone { private String na..
백기선님의 4주차 스터디 주제인 제어문에 대해서 다뤄보려고 합니다. 제어문에는 크게 조건문, 반복문이 있고, 자바에서 가장 많이 사용되며 가장 기초적인 부분이라고 해도 무방하다고 생각합니다. 하지만 가장 기초적인 부분이라서 그런지 자바에 대해 공부하다가 이 부분이 나오면 잘 알고 있다고 생각하고 넘어가기 일쑤였습니다. 그렇기 때문에 이번 기회에 다시 한 번 제대로 짚고 넘어가겠습니다. 목표 [백기선님 4주차 자바 스터디] 자바가 제공하는 제어문을 학습하세요. 학습할 것 선택(조건)문 반복문 제어문 제어문은 조건문과 반복문을 의미하며 코드의 실행 흐름을 제어하는 구문이라고 할 수 있습니다. 조건문 조건에 따라 코드의 실행 흐름을 제어하는 구문으로 다양한 조건문의 형태를 가지고 있습니다. if문 조건식의 진..