각종 학습 요약/Java
-
Java: JDBC API 기본 개념 이해각종 학습 요약/Java 2022. 6. 30. 13:46
JDBC API 기본 개념 이해 이 글은 JDBC가 무엇인지 알아보고 사용되는 과정에서 일어나는 일들을 살펴보는 글입니다. JDBC란? JDBC API는 Java 어플리케이션에서 데이터베이스와 연결하여 자원을 사용할 수 있도록 해주는 표준 API입니다. 어플리케이션 코드가 DB 벤더(Mysql, oracle, PostgreSQL 등...)에 종속되지 않도록 인터페이스 역할을 하고 있습니다. 벤더에 따라 JDBC 구현체가 존재하고, 어플리케이션 개발자는 이를 이용해서 다양한 벤더의 데이터베이스에 접근할 수 있습니다. JDBC 연결 과정 몇 가지 단계가 있긴 한데 아주 단순합니다. JDBC 드라이버를 로드해서 데이터베이스와 연결할 준비를 하고요. 준비를 했으니 연결합니다. 커넥션(Connection)을 얻어..
-
Java: 입출력(I/O) 스트림(Stream) 기초 개념각종 학습 요약/Java 2022. 5. 20. 14:19
입출력(I/O) 스트림(Stream) 기초 개념 데이터를 주고받는 도구인 스트림에 대한 개념을 알아봅니다. 스트림이란? 프로그램은 통신한다. 통신의 대상은 시스템이 될 수도 있고, 파일이 될 수도 있다. 무엇이 되었든, 그 대상과 데이터를 주고 받을 수 있다. 그렇게 데이터를 주고 받으려면 데이터가 오가는 길목이 필요하다. 그것이 바로 스트림이다. 주체를 기준으로 데이터가 들어오는 스트림을 Input Stream이라고 하고, 데이터를 내보내는 스트림을 Output Stream이라고 한다. Java에서의 스트림 1 - (File)Input/OutputStream Java에서 기본적인 Input/OutputStream은 바이트 단위로 데이터를 읽고 전송한다. 근데 기본 스트림대로 한 바이트 한 바이트 나르고..
-
Java: 람다와 스트림의 기본적인 이해와 사용법 - 2각종 학습 요약/Java 2022. 5. 19. 12:20
Java: 람다(lambda)와 스트림(Stream)의 기본적인 이해와 사용법 - 2 이전 글에서 람다의 아주 기초적인 형태나 개념은 익혔을 거라 생각하고, 이번 글에서는 주로 스트림을 활용하는 방법에 대해 알아보려고 한다. 주요 메서드 소개가 주가 될 것 같다. 아래 글을 따라가며 순차적으로 스트림을 열고 - 스트림 중간에 특정연산을 거쳐서 - 스트림의 결과값을 가지고 뭔가 산출해내면 된다(아래 예시처럼). 메서드 하나하나씩 써보자..! /* 예시 */ psvm { sout(func()); } int func() { return Intstream.range(1,5) /* '스트림 열기' 파트에서 하나 고르고(param은 설명보고 적당히 넣자) */ .skip(3) /* '스트림 사..
-
Java: 람다와 스트림의 기본적인 이해와 사용법 - 1각종 학습 요약/Java 2022. 5. 19. 12:19
Java: 람다(lambda)와 스트림(Stream)의 기본적인 이해와 사용법 - 1 람다에 대한 깊은 이해를 제공하는 글은 이미 많은 것 같다. 이 글은 람다를 몰랐던 사람이 람다로 익명함수를 즉시 사용해볼 수 있도록 방법을 소개하고, 사용하기 위한 아주 기본적인 이해를 위한 글이다. 람다 사용 한 줄 요약 메서드 시그니처에서 파라미터만 남기고, 화살표를 넣자. 리턴도 생략 가능. (경우에 따라 더 줄이는 것도 가능) 변경 예시1: public void run(int x) { System.out.println(x); } => (x) -> { sout(x); } 변경 예시2: public int function(int x) { return x + 10; } => (x) -> { x + 10; } 그렇다고..
-
Java: Enum 클래스의 기본적인 이해각종 학습 요약/Java 2022. 5. 19. 09:29
Java: 열거형(enumerated type, enum)의 기본적인 이해 enum은 대개 상수 역할을 하는 식별자를 말한다. Java에서는 enum을 별도의 클래스 형식으로 다룬다. 전통적인 static final 상수에 비교해 어떤 점이 좋은지, 작성 방법과 사용 방법, 주의점을 기초적인 내용만 간략하게 다뤄보려고 한다. static final을 쓰면 되지 왜 그런걸 써? 문자열이나 숫자를 상수(static final)로 사용하는 것에 비해, 툴 레벨에서 지원받는 기능이 많다(오토컴플릿, 오타 표시 등). 수용할 값을 명확히 제한할 수 있다. (리터럴 비교가 아닌, 객체 비교로 인한 안정성) 컴파일 타임 타입안정성 보장. (변경될 일이 '확실히' 없다.) 코드에 맥락이 생긴다. 장점은 ..
-
Java: 내부 클래스(Inner Class)의 기본적인 이해각종 학습 요약/Java 2022. 5. 18. 11:41
Java: 내부 클래스(Inner Class)의 기본적인 이해 Inner Class란? 말 그대로, 클래스 안에 정의된 클래스다. 내부 클래스를 감싸고 있는 클래스는 상대적으로 외부 클래스라고 불리게 된다. 클래스 안에 정의되는 클래스다보니, 아무래도 바깥의 클래스와 어떤 연관을 가지느냐를 중요히 생각해볼 필요가 있다. 내부 클래스의 유형은 네 가지가 있는데, 이제 아래의 설명에서 하나씩 천천히 알아가보자. 참고 : 아래의 설명에서 Inner Class, 이너클래스, 내부클래스, nested class, 중첩클래스라는 말을 혼용하게 될 것 같다. 당연히 전부 같은 의미다. 내부 클래스의 유형: 먼저 크게 두가지로 - 인스턴스 내부클래스/스태틱 내부클래스 "클래스 안의 클래스"라는 설명을 들었을 때, 보통..
-
Java: 컬렉션 프레임워크(Collection Framework) 개요각종 학습 요약/Java 2022. 5. 17. 13:41
Java: 컬렉션 프레임워크(Collection Framework) 컬렉션 프레임워크란? 데이터를 저장하기 위한 유용한 자료구조들을 구현해놓은 자바 클래스와 인터페이스의 집합. 주요 인터페이스(List, Map, Set)의 특징 List: 순서를 유지하는 선형적 구조. 마치 배열과도 비슷하다. Set: 순서 없이 값만 들어있는 구조. 대개 순서를 보장하지 않고, 중복 개념이 없다(덮어씌워짐). Map: 순서 없이 키와 값이 들어있는 구조. 대개 순서를 보장하지 않고, 중복 개념이 없다(덮어씌워짐). List와 Set List 주요 메서드 Object set(int index, Object o), addAll(int index, Collection c): 지정된 index에 삽입한다 Object get(i..
-
Java: 제네릭 Generic각종 학습 요약/Java 2022. 5. 17. 10:48
Java: 제네릭 Generic 제네릭이란? 객체 내부에서 사용할 데이터 타입을 파라미터 형태(타입 매개변수)로 지정해서, 일반화한 타입으로 사용하도록 하는 기술. 객체 입장에서 보면, 어떤 타입을 받을 건지 명확히 하지 않고 "'어떤 데이터 타입'이란게 넘어온다"라고 가정한 뒤 내부 속성과 동작을 정의하는 것이다. 객체를 사용하는 입장에서 보면, 객체를 생성할 때에 어떤 타입을 사용할 건지 명시하고, 객체를 활용할 때 해당 데이터 타입의 값만 사용하는 것이다. 말로 하면 헷갈리지만 기본 개념 자체가 엄청 복잡하진 않다. 제네릭의 장점 코드 작성 시 타입체크를 신경쓰지 않아도 된다(어긴 부분에서 컴파일 에러 발생). 제네릭을 사용하는 객체 안에서 타입 안정성이 보장된다. 타입 매개변수 제네..