각종 학습 요약
-
Stack과 Queue의 기본적인 이해각종 학습 요약/DataStructure 2022. 5. 26. 16:23
Stack과 Queue의 기본적인 이해 데이터를 효율적으로 다룰 수 있는 방법들을 모두 정리하여 둔 자료구조라는 것이 있습니다. 이 글에서는 자료구조의 대표주자 격인 스택(Stack)과 큐(Queue)의 특징와 원리를 이해해보고, 기능까지 간단히 알아보겠습니다. 스택과 큐의 공통점 둘 다 데이터를 담는 모양이 빨대처럼 생겼어요. 길다란 통로에 줄지어서 데이터들이 존재합니다. 데이터가 하나씩 들어가고, 하나씩 나갑니다. 스택과 큐의 차이점 줄지어서 입장한 데이터들이 있었죠. 이제 나갈때를 상상해보면, 스택은 나중에 들어온 데이터가 먼저 나갑니다. 가장 먼저 들어온 데이터가 가장 늦게 나가요. 빨대의 한 쪽 끝이 막혀있다고 생각하면 쉽겠네요. 입구가 곧 출구이기 때문에, 늦게 들어온 데이터가 먼저 나가는 것..
-
Concept : 재귀(Recursion)의 기본 개념 이해하기각종 학습 요약/Concept 2022. 5. 24. 11:08
재귀(Recursion)의 기본 개념 이해하기 이 글에서는 기존에 반복문으로 해결하던 문제를 재귀적 사고로 해결할 수 있다는 것을 알아봅니다. 재귀함수를 구성하는 기본적인 논리와 재귀함수를 구현할 때의 주의점에 대해 짚어봅니다. 재귀적(recursive) 호출이란? 재귀를 wikipedia를 찾아보면 자기 스스로를 참조하는 것이라고 정의되어있습니다. 스스로를 호출하는 함수(메서드)라고 보아도 무방할 것 같습니다. 왜 스스로를 호출하느냐? 그것은 문제가 해결될 때까지 특정 동작을 반복하기 위해서입니다. 근데, 여기쯤 왔다면 우리는 이미 반복을 위한 도구를 가지고 있죠. for와 while로 대두되는 반복문입니다. 반복문도 반복을 위한 것이고, 재귀도 반복적인 동작을 위한 것이라면 둘의 차이는 무엇이 있을까..
-
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..