일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 자바로 계산기 만들기
- 스프링 mvc1 - 스프링 mvc
- 자바의 정석 기초편 ch9
- 자바 고급2편 - 네트워크 프로그램
- 자바의 정석 기초편 ch6
- 스프링 트랜잭션
- 람다
- 스프링 고급 - 스프링 aop
- 자바의 정석 기초편 ch13
- 자바의 정석 기초편 ch1
- 스프링 mvc2 - 타임리프
- 자바의 정석 기초편 ch12
- 스프링 입문(무료)
- 자바의 정석 기초편 ch14
- 스프링 mvc2 - 검증
- 자바 중급2편 - 컬렉션 프레임워크
- 자바의 정석 기초편 ch2
- 자바 중급1편 - 날짜와 시간
- 자바의 정석 기초편 ch7
- 자바 고급2편 - io
- @Aspect
- 자바의 정석 기초편 ch11
- 자바의 정석 기초편 ch5
- 스프링 mvc2 - 로그인 처리
- 자바 기초
- 데이터 접근 기술
- 자바로 키오스크 만들기
- 자바의 정석 기초편 ch4
- 2024 정보처리기사 시나공 필기
- 2024 정보처리기사 수제비 실기
- Today
- Total
목록자바 로드맵 강의 (68)
개발공부기록
함수형 인터페이스와 제네릭함수형 인터페이스에 제네릭이 필요한 이유GenericMain1, 각각 다른 타입 사용package lambda.lambda3;public class GenericMain1 { public static void main(String[] args) { StringFunction upperCase = s -> s.toUpperCase(); String result1 = upperCase.apply("hello"); System.out.println("result1 = " + result1); NumberFunction square = n -> n * n; Integer result2 = square.apply(3); ..
람다 정의람다자바 8부터 도입된 람다는 자바에서 함수형 프로그래밍을 지원하기 위한 핵심 기능임람다는 익명 함수이므로 이름 없이 함수를 표현함 메서드나 함수는 아래와 같이 표현하며 이름이 있음반환타입 메서드명(매개변수) { 본문}public int add(int x) { return x + 1;} 람다는 아래처럼 이름이 없어서 간결하게 표현함(매개변수) -> {본문}(int x) -> {return x + 1;} 자바는 독립적인 함수를 지원하지 않으며 메서드는 반드시 클래스나 인터페이스에 속함 ** 용어 - 람다 vs 람다식(Lambda Expression)람다: 익명 함수를 지칭하는 일반적인 용어, 개념이라고 보면 됨람다식: (매개변수) -> {본문} 형태로 람다를 구현하는 구체적인 문법 표준..

프로젝트 환경 구성 프로젝트 설정Build: IntelliJJDK: 21 이상람다가 필요한 이유값 전달람다를 제대로 이해하려면 내부 클래스에 대한 개념을 확실하게 이해해야 함지금 설명하는 내용은 익명 클래스 활용에 대한 부분을 일부 심화한 내용임 Ex0Main - 리팩토링 전package lambda.start;public class Ex0Main { public static void helloJava() { System.out.println("프로그램 시작"); System.out.println("Hello Java"); System.out.println("프로그램 종료"); } public static void helloSpring() { ..

출처 : 인프런 - 김영한의 실전 자바 - 고급2편 (유료) / 김영한님 유료 강의이므로 정리에 초점을 두고 코드는 일부만 인용HTTP 서버 - 애노테이션 서블릿시작애노테이션 기반의 컨트롤러와 서블릿 만들기 Mapping - 애노테이션@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.METHOD)@Documentedpublic @interface Mapping { String value();}AnnotationServletV1package was.httpserver.servlet.annotation;public class AnnotationServletV1 implements HttpServlet { private final List contr..
출처 : 인프런 - 김영한의 실전 자바 - 고급2편 (유료) / 김영한님 유료 강의이므로 정리에 초점을 두고 코드는 일부만 인용애노테이션이 필요한 이유리플렉션 서블릿의 남은 문제점리플렉션 서블릿은 요청 URL과 메서드 이름이 같다면 해당 메서드를 동적으로 호출할 수 있는데 요청 URL과 메서드 이름을 다르게 하고 싶다면 지금 만든 기능으로는 구현이 불가능함그리고 앞서 /, /favicon.ico와 같이 자바 메서드 이름으로 처리하기 어려운 URL도 해결이 불가능함자바는 카멜케이스로 메서드 이름을 사용하지만 URL은 주로 -(dash)를 구분자로 사용하기 때문에 /add-member와 같은 URL을 매핑할 수 없음리플렉션 서블릿의 남은 문제점들을 해결하려면 메서드 이름만으로는 해결이 어렵기 때문에 추가 ..
출처 : 인프런 - 김영한의 실전 자바 - 고급2편 (유료) / 김영한님 유료 강의이므로 정리에 초점을 두고 코드는 일부만 인용리플렉션이 필요한 이유커맨드 패턴으로 만든 서블릿의 단점앞에서 커맨드 패턴으로 만든 서블릿은 매우 유용하지만 몇 가지의 단점이 있음하나의 클래스에 하나의 기능만 만들 수 있음새로 만든 클래스를 URL 경로와 항상 매핑해야 함문제1: 하나의 클래스에 하나의 기능만 만들 수 있음package was.v5.servlet;public class HomeServlet implements HttpServlet { @Override public void service(HttpRequest request, HttpResponse response) { // 기능 구현 ..

출처 : 인프런 - 김영한의 실전 자바 - 고급2편 (유료) / 김영한님 유료 강의이므로 정리에 초점을 두고 코드는 일부만 인용HTTP 서버1HTTP 서버 - 시작Hello World을 응답해 주는 서버 만들기웹 브라우저에서 직접 만든 서버에 접속하면 웹 브라우저에 Hello World가 크게 보일 것임 ** 참고HTML은 , , 와 같은 기본 태그를 가지는데 원래는 이런 태그도 함께 포함해서 전달해야 하지만 예제를 단순하게 만들기 위해 최소한의 태그만 사용함HTML에 대한 자세한 내용은 강의에서 설명하지 않음HttpServerV1HTTP 메시지의 주요 내용들을 문자로 읽고 쓰는 서버이므로 BufferedReader, BufferedWriter를 사용함Stream을 Reader, Writer로 변경할 ..

출처 : 인프런 - 김영한의 실전 자바 - 고급2편 (유료) / 김영한님 유료 강의이므로 정리에 초점을 두고 코드는 일부만 인용채팅 프로그램 - 설계설계요구 사항서버에 접속한 사용자는 모두 대화할 수 있어야 하며 아래의 채팅 명령어가 있어야 함입장/join|{name}: 처음 채팅 서버에 접속할 때 사용자의 이름을 입력해야 함메시지/message|{내용}: 모든 사용자에게 메시지를 전달이름 변경/change|{name}: 사용자의 이름을 변경전체 사용자/users: 채팅 서버에 접속한 전체 사용자 목록을 출력종료/exit: 채팅 서버의 접속을 종료클라이언트 설계기존에 작성한 네트워크 프로그램과 기본 뼈대는 비슷하지만 어느 정도의 설계가 필요함채팅은 실시간으로 대화를 주고받아야 하는데 기존의 네트워크 클..