본문 바로가기

분류 전체보기

(23)
[JAVA]백기선 라이브 스터디 15주차 :람다식 목표 자바의 람다식에 대해 학습하세요. 학습할 것 (필수) 람다식 사용법 함수형 인터페이스 Variable Capture 메소드, 생성자 레퍼런스 👉함수형 프로그래밍 함수형 프로그래밍은 패러다임이다. 람다 표현식은 이를 나타내는 수단이다! 람다식은 함수형 프로그래밍에 근간을 두기에 정리하고 넘어 가고자 한다. 함수의 입력만을 의존해 출력을 만드는 구조로 외부 상태를 변경하는 것을 지양한다. side effect를 제거하면 코드를 프로그램의 동작을 이해하고 예측하는 것이 훨씬 쉽다.(너무나도 공감..) side effect → 변수 수정, 필드 변경, 입력값 받기, 예외 던지기, 콘솔 출력, 파일 입력, 출력 등 순수함수(Pure Function) 같은 인자에 동일한 반환값을 갖는다. 함수의 실행이 외부 ..
[JAVA] 백기선 라이브 스터디 14주차 - Generics 제네릭 목표 자바의 제네릭에 대해 학습하세요. 학습할 것 (필수) 제네릭 사용법 제네릭 주요 개념 (바운디드 타입, 와일드 카드) 제네릭 메소드 만들기 Erasure 제네릭이 왜 필요할까 범용 클래스의 장점 💡타입을 한정하지 않고 클래스를 사용할 수 있음 ex) Box Box 는 별개의 클래스를 의미 하는 것이 아니라 매개변수 값이 다른 메서드를 호출하는 것과 같다. add(3,5) add(2,4)와 같은 매개변수를 바꿔가며 함수를 사용하는 것도 코드의 유연성이 향상된다. 이를 클래스에 접목하면 클래스의 사용이 용이할 것 같다. 그러면, 모든 자료형을 담는 구조가 있을까 ? → Object 탄생 object형식으로 참조 할 수 없는 객체는 없다. → 원시 형식의 값은 참조할 수 없다.왜냐 값은 참조하는 ..
[JAVA]백기선 라이브 스터디 13주차 JAVA I/O 목표 자바의 Input과 Ontput에 대해 학습하세요. 학습할 것 (필수) 스트림 (Stream) / 버퍼 (Buffer) / 채널 (Channel) 기반의 I/O InputStream과 OutputStream Byte와 Character 스트림 표준 스트림 (System.in, System.out, System.err) 파일 읽고 쓰기(FileInputStream, FileOutputStream) 스트림(Stream) 컴퓨터의 내부 또는 외부의 장치와 프로그램 간의 데이터를 주고 받는 것을 의미한다. 뜻 그대로 데이터의 흐름이라고 생각하면 된다. → 단방향 통신 ( 입력 , 출력시 두 개의 Stream이 필요) → 먼저 보낸 데이터를 먼저 받는 FIFO(First In First Out)구조 단점 :..
[JAVA] 백기선 라이브 스터디 12주차 Annotation 목표 자바의 애노테이션에 대해 학습하세요. 학습할 것 (필수) 애노테이션 정의하는 방법 @Retention @Target @Documented 애노테이션 프로세서 1. 어노테이션을 사용하는 이유 javadoc.exe를 사용해 주석으로 부터 HTML문서를 생성할 수 있다. 이는 소스코드와 문서를 하나로 관리하는 것이 낫다고 생각하여 개발되었다. package anno; /** * Test Annotation * **/ public class DemoFunctionClass implements DemoFunctional { @Override public int printAge(int age) { return 0; } @Override public void testMessage() { System.out.pr..
[프로그래머스] 코딩테스트 연습 : 해시 > 위장 문제 : 스파이들은 매일 다른 옷을 조합하여 입어 자신을 위장합니다. 예를 들어 스파이가 가진 옷이 아래와 같고 오늘 스파이가 동그란 안경, 긴 코트, 파란색 티셔츠를 입었다면 다음날은 청바지를 추가로 입거나 동그란 안경 대신 검정 선글라스를 착용하거나 해야 합니다. 종류 이름 얼굴 동그란 안경, 검정 선글라스 상의 파란색 티셔츠 하의 청바지 겉옷 긴 코트 스파이가 가진 의상들이 담긴 2차원 배열 clothes가 주어질 때 서로 다른 옷의 조합의 수를 return 하도록 solution 함수를 작성해주세요. 자세한 문제는 링크를 참조하세요. 입출력 예 해결방법 경우의 수로 접근하였다. 모든 경우의 수 - 전부 다 없는 경우 Point 장착하지 않는 경우 : 모든 종목 중에 한 종목만 장착해도 된다 함은 ..
[Java]터미널 javac 실행시 cannot find symbol처리 방법 Java 파일을 터미널 환경에서 컴파일하는 방법을 정리하고자 한다. Main.java파일의 위치로 이동하여 javac Main.java를 실행하였더니, Test 클래스를 찾지 못하는 오류가 발생했다. intellij와 같은 IDE를 활용하면 패키지 내의 모든. java파일들이 자동으로 빌드된다. 그래서 우리는 여태까지 터미널 환경에서 자바 프로젝트가 실행되는 과정을 고려하지 않아도 프로그램을 실행하는데 문제가 없었다. 우리는 보통 프로젝트를 관리할 때 패키지 안에 필요한 클래스들을 생성하여 프로그램을 만든다. 자바 파일을 빌드하려면 빌드된 바이너리가 저장될 디렉터리가 필요하다.IDE를 사용하면 이 작업을 프로젝트를 생성할 때 알아서 해준다. 자세한 내용은 아래의 블로그를 참고하세요. [Ant]자바파일 여..
[Java] 백기선 라이브 스터디 11주차 - Enum 목표 자바의 열거형에 대해 학습하세요. 학습할 것 (필수) enum 정의하는 방법 enum이 제공하는 메소드 (values()와 valueOf()) java.lang.Enum EnumSet enumerate in programming - 상수로 식별하는 역할을 한다. The enumerator names are usually identifiers that behave as constants in the language. 상수 클래스 내부나 인터페이스에 상수값을 고정할 경우 충돌이 많이 발생하고, 수정할 때 불편하다는 점 때문에 Enum 자료형이 생성되었다. Enum은 이름있는 상수의 집합을 의미한다. 장점 - 가독성을 높인다.(개발자의 의도가 분명히 드러난다.) - 불필요한 인스턴스의 생성을 막아주고 충..
[JAVA] 로컬 클래스 , 익명 클래스, 람다의 스코프 차이 - Nested Class - Local Class - Anonymous Classes - Lamda - Scope and Accessibility Nested Class - 클래스 안의 클래스를 의미 자세한 설명은 링크를 참고하세요. https://docs.oracle.com/javase/tutorial/java/javaOO/nested.html Nested Classes (The Java™ Tutorials > Learning the Java Language > Classes and Objects) The Java Tutorials have been written for JDK 8. Examples and practices described in this page don't take advantage..