코드스테이츠_국비교육 158

21_재귀 함수_22.09.20

학습 목표 재귀 함수 개념 이해 재귀적 사고 연습 재귀 함수 >의미 및 특징 : 원래의 자리로 되돌아오는 함수 : 호출 시, 다시 본인(함수)을 호출하는 함수. : 몸체에 본인을 호출하는 코드가 존재함 : 함수가 해결되면, 제일 마지막(내부)부터 제일 처음(외부)까지 거슬러 올라가면서 계산이 이루어짐. >조건 문제를 더 작은 단위로 쪼갤 수 있어야함. 재귀 호출이 종료되는 시점을 설정해야함. >장점 : 반복문을 사용하지 않음 : 코드가 간결하고 수정이 용이함(반복문 X) : 변수의 양을 줄일 수 있음. (오류를 줄일 수 있음) /* 22.10.19 변수의 양을 줄일 수 있는 장점 외에는 사실 명확한 장점은 아닌 것 같다. 하지만 재귀로만 풀 수 있는 문제들이 있고, 이를 분명하게 정리해두면 장점으로 표현..

20_[Section 1] 회고_22.09.19

짧고도 길었던 Sectrion 1이 끝이 났다. 괜히 묘한 감정이 든다...ㅋㅋ 지금껏 배우고 느끼고 생각했던 것들을 돌아보며 정리하겠다. 1. 생각없이 해도 생각보다 좋다! 난 걱정이 참 많은 성격이다. 뭐 좋을 때도 있지만, 내가 쌓았던 커리어를 돌아보면 내 진로에 대해서는 최악인 성격이라고 생각한다. 코드스테이츠 부트캠프를 신청할 때도 그랬다. 신청부터 걱정했고, 심지어 합격하고 나서도 걱정했다. ㅋㅋ근데 아무래도 부트캠프를 하는 사람 중에서 나 같은 사람이 많았던 것 같다. 부트캠프 극 초반에는 꽤나 강력한 정신 개조(?) 교육이 있다. 근데 그게 나한테는 참 큰 도움이 됐다. 많은 내용이 있었지만, 아래의 두 내용이 가장 크게 와닿았다. '남과 비교하지 말고 어제의 나와 비교하라' '실패하는 건..

20_기술 면접 연습, 미니 잡 서칭_22.09.19

기술 면접 연습 >진행 : 원하는 질문을 3개 골라 답변을 준비하여 기술 면접 연습에 임했다. : 각각의 질문이 답변 혹은 질문 주제에 대한 추가적인 질문을 예상하며 준비했다. >느낀점 : 준비하면서 생각보다 내가 더 대충 기억하고 있다는 것을 깨달았다. (메타인지...) : 나름 그때 그때 회고하면서 잘 정리했다고 생각했는데, 오늘 면접을 준비하면서 더 알게된 경우가 많았다. : 한 번에 완벽히 정리는 못한다고 생각하고, 후에 다시 공부하고 그때그때 추가되는 정보와 이해를 더 기록하자. // 아래 단 질문은 지금 보기도 힘겨운데 나중에 보면 많이 역할 것 같다...참고 그때 수정해보도록 하자. 미니 잡 서칭_책 읽기 >회고 : 코드스테이츠의 세심함에 다시 한 번 놀란다. 이따금 구성된 프로그램을 보면서..

19.01_스레드_22.09.16

학습 키워드 스레드 싱글 스레드와 멀티 스레드 스레드 생성 방법 스레드 실행 스레드 동기화 스레드의 상태와 제어 스레드, Thread >의미 : 프로세스 내에서 실행되는 소스 코드의 실행 흐름 : 운영체제로부터 프로세스가 제공받은 데이터와 컴퓨터 자원을 활용하는 하나의 실행 흐름 >프로세스 : 실행중인 프로그램 : 자원, 데이터, 스레드로 구성 >스레드 종류 메인 스레드 : 시작점 스레드 : 프로그램이 시작될 때, 가장 먼저 시작되는 스레드 작업 스레드 : 메인 스레드가 아닌 스레드 >프로그램 종류 (스레드에 따른) 싱글 스레드 프로그램 : 메인 스레드 하나만 존재하는 프로그램 : 하나의 작업만 실행하는 프로세스 멀티 스레드 프로그램 : 메인 스레드와 한 개 이상의 작업 스레드가 존재하는 프로그램 : 여..

18.06_파일 입출력_22.09.15

학습 키워드 바이트 기반 스트림 문자 기반 스트림 파일 클래스 InputStream, OutputStream >의미 및 특징 : 입력과 출력을 다루기 위한 스트림 : 단방향으로 데이터를 전송하는 스트림 : 스트림의 대상(데이터 송수신의 대상)이 누구냐에 따라 다른 입출력 스트림을 사용해야한다. 바이트 기반 스트림 >의미 및 특징 : 입출력 단위가 byte. >FileInputStream : 데이터의 대상이 File인 입력 스트림 : File로부터 데이터를 입력받는 스트림 : File을 읽을 수 있음 : 해당 File은 IDE의 Workspace에 존재해야한다 import java.io.FileInputStream; public class ExampleInput{ public static void main..

18.05_애너테이션_22.09.15

학습 키워드 애너테이션 표준 애너테이션, 메타 애너테이션 사용자 정의 애너테이션 Annotation >의미 : 프로그램 실행에 영향을 끼치지 않는 동시에 정보를 제공하는 역할을 한다. : 주석과 비슷한 목적성을 띈다. 하지만 정보를 제공하는 대상에 차이가 있다. >주석(comment)와 애너테이션(annotation)의 차이 주석: 소스 코드를 읽는 사람(개발자)에게 정보를 제공 애너테이션: 특정 코드를 사용하는 프로그램에게 정보를 제공 >용도 컴파일러에게 문법 에러를 체크하도록 정보 제공 프로그램 빌드 시, 코드를 자동으로 생성하도록 정보 제공 런타임에 특정 기능을 실행하도록 정보 제공 >종류 1. 표준 애너테이션 : 자바에서 기본으로 제공하는 애너테이션 2. 메타 애너테이션 : 애너테이션에 붙이는 애..

18.04_메서드 레퍼런스_22.09.15

메서드 레퍼런스 >의미 및 특징 : 람다식처럼 특정 조건에서 좀 더 간결한 코드를 위해서 사용하는 방법 : 메서드의 입력값과 출력값의 반환타입이 유추하기 쉬울 경우에 사용 : 메서드를 호출하는 것 같지만 사실 람다식처럼 익명 객체를 생성하고 이를 함축한 표현이다. (= 객체라는 뜻!) : 람다식은 추상 인터페이스의 메서드를 간결하게 표현하는 것이고, 메서드 레퍼런스는 정의된 메서드를 간결하게 표현하 는 것. >정적 메서드 참조 클래스명::메서드명 >인스턴스 메서드 참조 참조 변수명::메서드명 >생성자 참조 클래스::new //깊은 이해를 위해서는 익명 객체와 람다에 대한 이해가 더 필요해 보인다. //이후에 더 공부해서 람다와의 비교를 더 추가해서 기록해 두자

18.02_스트림_22.09.15

학습 키워드 스트림 스트림의 활용 스트림의 주요 메서드 스트림, Stream >의미 : 데이터 소스를 가공하여 결과값을 도출하는 흐름 : 데이터 소스의 요소를 하나씩 참조해서 람다식으로 처리할 수 있도록 해주는 반복자 >특징 1. 선언형 프로그래밍을 할 수 있다. : 프로그램이 '어떤 방법으로 해야 하는지'보다는 '무엇을 수행하는지'를 설명하는 프로그래밍 : 즉, 문제 처리의 과정인 알고리즘을 보여주는 것이 아니라, 프로그램의 목표를 알려주는 프로그래밍 2. 요소 처리 코드를 람다식으로 표현할 수 있다. 3. 중간 연산과 최종 연산을 수행한다. : 지연된 연산; 최종 연산이 실행될 때 까지 연산이 지연된다. : 중간 연산의 반환값은 Stream이고, 최종 연산의 반환값은 Stream이 아닌 자료형의 값이..

18.01_람다_22.09.15

학습 키워드 람다식 함수형 인터페이스 람다식 변환(메서드 참조 방식) 람다, Lambda >의미 및 특징 : 메서드를 하나의 식으로 표현하기 위한 자바의 문법요소 : 함수형 인터페이스를 간소하게 구현하기 위한 문법요소이다. : 람다식 사실 이름 없는 익명 객체이다. : 람다식이 객체이기 때문에 람다식을 인자로 전달하거나, 같은 참조변수에 다른 람다식을 새로 구현하는 등 객체의 특성을 지닌다. //람다식 : 람다로 표현된 문장을 지칭하는 용어. >함수형 인터페이스 : 딱 하나의 추상 메서드가 존재하는 인터페이스 : 람다로 구현가능한 인터페이스 //참고 //추상 메서드가 하나만 있다면 다른게 무엇이 있어도 함수형 인터페이스이다. //다른게 있어도 람다로 구현할 것은 오직 추상 메서드 하나 뿐... >익명 클..