🏫 Open API_JAVA

    [76일차] 게시판 기능구현 순서 / 의존성 주입 / 게시물 삭제 기능 구현 / 오라클 인덱스 힌트

    [76일차] 게시판 기능구현 순서 / 의존성 주입 / 게시물 삭제 기능 구현 / 오라클 인덱스 힌트

    20221110(목) 목차 - 게시판 기능 구현 순서 - 의존성 주입 (DI : Dependency Injection) - 게시물 삭제 기능 구현 - 오라클 인덱스 힌트 - (라이브러리 및 환경설정(bean) 제외) 테이블 설계(SQL) 패키지 구조 com.demo.domain - BoardVO 클래스 설계 게시판 글쓰기 - 글쓰기 폼 : DB연동 없다. **중요 : 파라미터를 무엇으로 할 것이냐! - 글쓰기 저장 작업1> Controller : 글 저장 매핑주소 및 메소드 작업 작업2> Mapper Interface와 Mapper XML 작업 - Mapper Interface : 메서드 작업 - Mapper XML : SQL 구문작업 작업3> Service 작업 - Ser..

    [75일차] 게시판 구조 생성 / 디자인 html 파일 ➡ jsp 형태로 만들기

    [75일차] 게시판 구조 생성 / 디자인 html 파일 ➡ jsp 형태로 만들기

    20221109(수) 목차 - 게시판 구조 생성 - 디자인 html 파일 ➡ jsp 형태로 만들기 https://dorothy-yang.tistory.com/158 [Spring 프로젝트] 스프링 프로젝트 생성 및 준비(라이브러리 추가) 스프링 프로젝트 생성 및 준비하기🤔 Spring Legacy Project의 생성 pom.xml에서 스프링 버전 변경 (아래는 한번에 추가된다.) spring-test, spring-jdbc, spring-tx 추가 junit버전 변경 Servlet 버전 변경 HikariCP, MyBat dorothy-yang.tistory.com 1. BoardMapper.java(인터페이스) 생성 **실행 패키지는 xml파일에 꼭 설정되어 있어야 한다!!! ..

    [74일차] Ajax / 파일 업로드 처리기능 구현 / bean 설정 및 라이브러리 추가

    [74일차] Ajax / 파일 업로드 처리기능 구현 / bean 설정 및 라이브러리 추가

    20221108(화) 목차 - Ajax - 파일 업로드 처리기능 구현 - bean 설정 및 라이브러리 추가 Asynchronous JavaScript and XML의 약자 빠르게 동작하는 동적인 웹 페이지를 만들기 위한 개발 기법의 하나 장점 1) 웹 페이지 전체를 다시 로딩하지 않고도, 웹 페이지의 일부분만을 갱신할 수 있음 2) 백그라운드 영역에서 서버와 통신하여, 그 결과를 웹 페이지의 일부분에만 표시할 수 있음 이때 서버와는 다음과 같은 다양한 형태의 데이터를 주고받을 수 있습니다. - JSON / XML / HTML / 텍스트 파일 등 출처 : http://www.tcpschool.com/ajax/ajax_intro_basic 코딩교육 티씨피스쿨 4차산업혁명, 코딩교육, 소프트웨..

    [73일차] 게시판 만들기 / 클래스 ➡ 컬렉션으로 사용하기 / 스프링에서 데이터를 받는 방법

    [73일차] 게시판 만들기 / 클래스 ➡ 컬렉션으로 사용하기 / 스프링에서 데이터를 받는 방법

    20221107(월) 목차 - 게시판 만들기 - 클래스 ➡ 컬렉션으로 사용하기 - 스프링에서 데이터를 받는 방법 SampleController2 코드 package com.demo.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import com.demo.domain.BoardVO; import lo..

    [72일차] 개발툴 / 스프링 프레임워크 / 마이바티스 / 스프링에서 bean생성하는 유형

    [72일차] 개발툴 / 스프링 프레임워크 / 마이바티스 / 스프링에서 bean생성하는 유형

    20221104(금) 목차 - 개발툴 - 스프링 프레임워크 - 기능구현 - pom.xml - 마이바티스 - 스프링에서 bean생성하는 유형 이클립스 Plug-In 스프링 추가설치 STS 스프링 전용툴(스프링부트 포함) 스프링프레임워크 Visual Code 추가설치 상업용 : 인텔리 J 설정방식 1) XML 이용 2) Java 이용 MVC 패턴 구조로 설계 - M : Model - 로직, 데이터 - V : Veiw - 화면출력. jsp파일 - C : Controller - 클라이언트의 요청을 담당. 클래스 2) 스프링과 마이바티스를 중계(연결) https://mvnrepository.com/artifact/org.mybatis/mybatis-spri..

    [71일차] JSON / 롬복 라이브러리 / 의존성 주입 / Spring-Test / MyBatis xml 파일 사용하기

    [71일차] JSON / 롬복 라이브러리 / 의존성 주입 / Spring-Test / MyBatis xml 파일 사용하기

    20221103(목) 목차 - JSON - 롬복 라이브러리 - 의존성 주입 (Dependency Injection) - Spring-Test - MyBatis xml 파일 사용하기 JSON : JavaScript Object Notation 특징 : 큰 따옴표로 묶어주기 JSON.parse (json문자열) ➡ javascript object 변환 장점 : 코드를 심플하게 만들 수 있다. 아래 링크를 참고하여 롬복을 설치해주세요 :) https://dorothy-yang.tistory.com/101 [Eclipse에 롬복 설치] 롬복 다운로드 및 설치 롬복이란? Java의 라이브러리로 반복되는 메소드를 Annotation을 사용해서 자동으로 작성해주는 라이브러리 1..

    [70일차] JSTL 라이브러리 / 기본이론 / 스프링 프레임워크 / CRUD 기능

    [70일차] JSTL 라이브러리 / 기본이론 / 스프링 프레임워크 / CRUD 기능

    20221102(수) 목차 - JSTL I18N태그 라이브러리 - JSTL Functions 라이브러리 - 기본이론 - 스프링 프레임워크 - CRUD 기능 JSTL(JSP Standard Tag Library) 은 표준 커스텀 태그(Custom Tag) 커스텀 태그 : 사용자 정의 태그 JSP페이지의 로직을 담당하는 부분인 제어문 및 데이터베이스 처리 등을 표준 커스텀태그로 제공하여 코드를 깔끔하게 하고 가독성을 좋게 함. 라이브러리 : SQL(데이터베이스) 제공기능 : 로케일(사용자의 언어, 국가뿐 아니라 사용자 인터페이스에서 사용자가 선호하는 사항을 지정한 매개 변수의 모임), : : 메시지, 숫자 문자 형식 등 JSTL fmt 태그 리스트 re..

    [69일차] 쿠키 / 표현언어 Expression Language : EL

    [69일차] 쿠키 / 표현언어 Expression Language : EL

    20221101(화) 목차 - 쿠키 - 표현언어 Expression Language : EL HTTP 프로토콜은 웹 브라우저(클라이언트)의 요청에 대한 응답을 하고 나면 해당 클라이언트와의 연결을 지속하지 않음. 상태가 없는 프로토콜을 위해 상태를 지속시키기 위한 방법 정보를 웹 브라우저에 저장 쿠키 생성 및 사용하기 생성된 쿠키 이름 및 값 확인하기 JSTL - JSP페이지에 사용되는 선언문(), 스크립트릿(), 표현식() - 좀 더 쉽고 자연스러운 형태로 태그(주로 액션태그)의 속성 값을 지정하고 객체의 메소드에 지정하는 방법을 제공 기존방식과 표현언어(EL)를 사용한 방식 비교 - 유동적인 속성 값 지정 - ➡ 표현언어(EL)..

    [68일차] session 객체 / application 객체 / 내장객체의 영역 / JSP 페이지의 모듈화 / 데이터베이스와 JSP의 연동

    [68일차] session 객체 / application 객체 / 내장객체의 영역 / JSP 페이지의 모듈화 / 데이터베이스와 JSP의 연동

    20221031(월) 목차 - session 객체 - application 객체 - 내장객체의 영역 - JSP 페이지의 모듈화 - 데이터베이스와 JSP의 연동 세션(Session) : 클라이언트가 서버에 연결된 상태. 로그인 사용자를 구분해서 로그인한 사용자에게 보여주는 메뉴 비로그인한 사용자에게 보여주는 메뉴 세션ID : 유저가 브라우저를 이용하여, 사이트를 첫 접속했을 경우 해당 서버에서 사용자를 구분하는 목적으로 발급(생성)해주는 고유한 ID 웹 어플리케이션 Context(문맥, 정황)의 정보를 저장하고 있는 객체 서버의 설정 정보, 자원에 대한 정보, 어플리케이션이 실행되는 동안에 발생할 수 있는 이벤트 로그 정보등을 제공 웹 어플리케이..

    [67일차] JSP 페이지의 디렉티브 / 스크립트 요소 / 주석 / 제어문 / 내장 객체

    [67일차] JSP 페이지의 디렉티브 / 스크립트 요소 / 주석 / 제어문 / 내장 객체

    20221028(금) 목차 - JSP 페이지의 디렉티브 - JSP 페이지의 스크립트 요소 - JSP 주석 - JSP 제어문 - 내장 객체 (Implicit Object) - directive JSP ? : Java Server Pages - Java를 이용한 서버 사이드 스크립트 언어 - Java의 점유율을 대폭 상승시킨 1등 공신 - JSP 파일은 그 자체로 실행 x ➡ servlet 성격의 자바파일로 변환되고 컴파일되어 클래스가 된 후 실행된다. include 디렉티브 - - 합쳐져서 실행된다!!!!!!!!!! - 두 개의 파일이 하나의 파일로 합쳐진 후 하나의 파일로서 변환되고 컴파일된다. b나 c 링크로 들어갔을 경우, menu 내용이 공통적으로 나오게된다. men..

    [66일차] 백엔드 / 웹 프로그래밍의 이해 / 각 파일들의 역할 - jsp, servlet

    [66일차] 백엔드 / 웹 프로그래밍의 이해 / 각 파일들의 역할 - jsp, servlet

    20221027(목) 목차 - 백엔드 - 웹 프로그래밍의 이해 - 각 파일들의 역할 - jsp, servlet 백엔드 : 자바 ➡ JSP ➡ Spring Back-end 개발자 과정에서 준비되어야 할 소프트웨어 - 개발환경구축 - JDK 설치 및 환경변수 등록 - 개발툴 : 이클립스(인코딩 enc UTF-8 설정), 인텔리J, VS Code 등... - WAS : Tomcat 설치 및 환경변수 등록 - DB : Oracle, MySQL, Ms-SQL, ... - Tomcat 9.0 - 이클립스 내부에서 1) 기본적인 웹서버기능 제공 2) WAS : Web Application Server 기능제공 웹 프로그래밍의 개요 - HTML만으로는 데이터가 실시간으로 변화..

    [65일차] 예외처리 / 트랜잭션

    20221026(수) 목차 - 예외처리 - 트랜잭션 (1) 문법 오류 - 객체(테이블, 뷰, 함수, 프로시저 등)나 키워드 이름을 잘못 참조 - 함수나 프로시저의 매개변수를 잘못 명시했을 때 발생되는 오류 - 이들은 컴파일할 때 걸러진다. (2) 예외exception - 컴파일 때는 아무런 문제가 없으나 실행, 즉 런타임 때 로직을 처리하면서 발생하는 오류 - 컴파일 시 발생하는 오류도 예외에 속하긴 하지만 보통 예외라고 하면 런타임 때의 오류 예외에는 다시 오라클에서 발생시키는 시스템 예외와 사용자가 의도적으로 발생시킬 수 있는 사용자 정의 예외로 구분할 수 있다. 의도적 예외처리 구문 작성 및 예외처리 구문 DECLARE vi_num NUMBER := 0; BEGIN vi_num :=..

    [64일차] PL/SQL(익명블록, 변수, 상수, DML, 제어문, 함수) / 프로시저

    [64일차] PL/SQL(익명블록, 변수, 상수, DML, 제어문, 함수) / 프로시저

    20221025(화) 목차 - PL/SQL 기본 구조 (익명블록) - PL/SQL 구성요소 (변수, 상수, DML) - PL/SQL 제어문 (IF문, CASE문) - PL/SQL의 사용자 정의 함수 - 프로시저 실제 복잡한 비즈니스 로직을 만들때 사용 일반 프로그래밍 언어에서 제공하는 많은 기능이 탑재 DB에 직접 탑재, 컴파일되고 실행 ➡ 성능 면에서 우수 익명블록 SET SERVEROUTPUT ON; SET SERVEROUTPUT OFF; DECLARE // 변수, 상수선언 vi_num NUMBER; BEGIN // 실행문장 vi_num := 100; // 변수에 값 할당(대입) DBMS_OUTPUT.PUT_LINE(vi_num); // JAVA. System.out.p..

    [63일차] 계층형 쿼리 / 계층형 쿼리 응용 / WITH 절 / 분석함수 와 window 함수

    [63일차] 계층형 쿼리 / 계층형 쿼리 응용 / WITH 절 / 분석함수 와 window 함수

    20221024(월) 목차 - 계층형 쿼리 - 계층형 쿼리 응용 - WITH 절 - 분석함수 와 window 함수 BOM(Bill Of Material) 이란? ➡ 하나의 완제품이 만들어지는데 필요한 구성품목들의 내역 혹은 조합도를 말함. ex) 컴퓨터 구성도(BOM) SELECT expr1, expr2, ... FROM 테이블 WHERE 조건 START WITH[최상위 조건] CONNECT BY [NOCYCLE][PRIOR 계층형 구조 조건]; 데이터가 부모/자식/부모/자식 순으로 출력된다. LEVEL 의사컬럼 - DB 단에서 미리 탭여백을 줘서 넘길 것인지 - 들여쓰기는 JS, Spring, DB에서 다 할 수 있다. 어디에서 할 건지 정할 수 있음. 레벨에 따라 들여쓰기가 달라진..

    [62일차] 서브 쿼리

    [62일차] 서브 쿼리

    20221021(금) 목차 - 서브 쿼리 한 SQL 문장 안에서 보조로 사용되는 또 다른 SELECT문을 의미 - 메인 쿼리 : 최종 결과를 출력하는 쿼리 - 서브 쿼리 : 중간 단계 혹은 보조 역할을 하는 SELECT문 (* 따라서 서브 쿼리는 여러 개를 사용할 수 있다.) 서브 쿼리는 다양한 형태로 사용된다! 즉 SELECT, FROM, WHERE 절 모두에서 사용할 수 있을 뿐만 아니라, INSERT, UPDATE, MERGE, DELETE 문에서도 사용할 수 있다. 서브 쿼리는 그 특성과 형태에 따라 다음과 같이 구분할 수 있다. 메인 쿼리와의 연관성에 따라 형태에 따라 연관성 없는(Noncorrelated) 서브 쿼리 연관성 있는 서브 쿼리 일반 서브 쿼리..

    [61일차] 조인의 종류 / ANSI 내부 조인 / ANSI 외부 조인

    20221020(목) 목차 - 조인의 종류 - ANSI 내부 조인 - ANSI 외부 조인 관계형 데이터베이스에서 SQL을 이용해 ‘관계’를 맺는 방법 원하는 정보를 테이블에서 추출하려면 대부분 한 개 이상의 테이블이나 뷰에서 데이터를 읽어 와야 함 이때 테이블 간의 연결고리로 관계를 맺고 데이터를 추출 ➡ 바로 ‘조인’을 통해 이를 구현할 수 있다. • 조인 연산자에 따른 구분 (2개) : 동등 조인, 안티 조인 • 조인 대상에 따른 구분 (1개) : 셀프 조인 • 조인 조건에 따른 구분 (4개) : 내부 조인, 외부 조인, 세미 조인, 카타시안 조인 • 기타 (1개) : ANSI 조인 일반적으로 내부 조인과 외부 조인만 구분할 수 있으면 충분하다. < ANSI 내부..

    [60일차] 변환 함수 / NULL 관련 함수 / 기타 함수 / GROUP BY 절과 HAVING 절 / ROLLUP 절과 CUBE 절 / 집합 연산자

    20221019(수) 목차 - 변환 함수 - NULL 관련 함수 - 기타 함수 - GROUP BY 절과 HAVING 절 - ROLLUP 절과 CUBE 절 - 집합 연산자 서로 다른 유형의 데이터 타입으로 변환해 결과를 반환하는 함수 명시적 형변환 : 변환 함수를 통해 형변환을 직접 처리하는 것 TO_CHAR (숫자 혹은 날짜, format) 숫자나 날짜 ➡ 문자로 변환해 주는 함수 TO_NUMBER(expr, format) 문자나 다른 유형의 숫자 ➡ NUMBER 형 TO_DATE(char, format) 문자 ➡ 날짜 TO_TIMESTAMP(char, format) TO_DATE ➡ DATE / TO_TIMESTAMP ➡ TIMESTAMP NULL을 비교할 ..

    [59일차] SQL 문장 살펴보기 (UPDATE / MERGE / DELETE / COMMIT과 ROLLBACK, TRUNCATE / ROWNUM / 함수)

    [59일차] SQL 문장 살펴보기 (UPDATE / MERGE / DELETE / COMMIT과 ROLLBACK, TRUNCATE / ROWNUM / 함수)

    20221018(화) 목차 - UPDATE - MERGE - DELETE - COMMIT과 ROLLBACK, TRUNCATE - 의사컬럼 - ROWNUM - 연산자 & 표현식 - 논리 조건식 - 함수 테이블에 있는 기존 데이터를 수정할 때 사용하는 문장 UPDATE [스키마.]테이블명 SET 컬럼1 = 변경값1, 컬럼2 = 변경값2, ... WHERE 조건; * NULL인 데이터를 찾을 때 ➡ 검색 조건에는 반드시 IS NULL(NULL이 아닌 것은 IS NOT NULL)로 비교해야 한다. 조건을 비교해서 테이블에 해당 조건에 맞는 데이터가 없으면 INSERT 있으면 UPDATE를 수행하는 문장 과거) 해당 조건 처리하는 로직을 별도로 작성 ➡ 현재) MERGE문이 ..

    [58일차] 테이블 변경 / 테이블 복사 / 뷰 / 인덱스 / 시노님 / 시퀀스 / 파티션 테이블 / SELECT문

    [58일차] 테이블 변경 / 테이블 복사 / 뷰 / 인덱스 / 시노님 / 시퀀스 / 파티션 테이블 / SELECT문

    20221017(월) 목차 - 테이블 변경 - 테이블 복사 - 뷰 - 인덱스 - 시노님 - SELECT문 (1) 컬럼명 변경: col1 컬럼 이름을 col11으로 변경 ALTER TABLE [스키마.]테이블명 RENAME COLUMN 변경전컬럼명 TO 변경후컬럼명; ALTER TABLE ex2_10 RENAME COLUMN Col1 TO Col11; (2) 컬럼 타입 변경: col2 컬럼을 VARCHAR2(10)에서 VARCHAR2(30)으로 변경 ALTER TABLE [스키마.]테이블명 MODIFY 컬럼명 데이터타입; ALTER TABLE ex2_10 MODIFY Col2 VARCHAR2(30); (3) 컬럼 추가: col3 NUMBER 타입으로 신규 생성 ALTER TABLE [스..

    [57일차] 데이터 타입(문자, 숫자, 날짜, LOB) / NULL vs NOT NULL / 제약조건 (Constraints)

    [57일차] 데이터 타입(문자, 숫자, 날짜, LOB) / NULL vs NOT NULL / 제약조건 (Constraints)

    20221014(금) 목차 - (문자, 숫자, 날짜, LOB) 데이터 타입 - NULL vs NOT NULL - 제약조건 (Constraints) 데이터 타입 설명 CHAR (크기[ BYTE | CHAR ]) 고정길이 문자, 최대 2000byte, 디폴트 값은 1byte VARCARCHAR2 (크기[ BYTE | CHAR ]) 가변길이 문자, 최대 4000byte, 디폴트 값은 1byte NCHAR (크기) 고정길이 유니코드 문자(다국어 입력 가능), 최대 2000byte, 디폴트 값은 1 NVARCARCHAR2 (크기) 가변길이 유니코드 문자(다국어 입력 가능), 최대 4000byte, 디폴트 값은 1 LONG 최대 2GB 크기의 가변길이 문자형, 잘 사용하지 않음 빨간색 : ..

    [56일차] SQL, PS/SQL / 테이블스페이스 생성

    [56일차] SQL, PS/SQL / 테이블스페이스 생성

    20221013(목) 목차 - SQL, PS/SQL - 테이블스페이스 생성 - 데이터베이스 프로그래밍 언어 SQL (Structured Query Language) ➡ DBMS 상에서 데이터를 읽고 쓰고 삭제하는 등 데이터를 관리하기 위한 일종의 프로그램 언어 ISO 국제 표준화 기구와 미국국립표준협회 ANSI에서 RDBMS의 표준 언어로 SQL를 채택했다. PL/SQL (Procedural Language extension to SQL) ➡ SQL을 확장한 절차적 언어(Procedural Language)이다. 테이블스페이스 생성 오라클 = 데이터를 관리하는 시스템 데이터를 어딘가에 저장해 놓고 사용해야 하는데, 데이터 저장 단위 중 가장 상위 개념이 바로 테이블스페이스다...

    [55일차] 데이터 베이스 설정 및 샘플 스키마 설치

    [55일차] 데이터 베이스 설정 및 샘플 스키마 설치

    20221012(수) 목차 - 데이터 베이스 설정 - 샘플 스키마 설치 - 관리자 (DBA) : 데이타베이스 관리 및 운용 - 개발자 (Back-End) : 웹개발자 - 사용자 : 업무 토드 ➡ 오라클 틀 : 가장 널리 사용되는 툴 중 하나가 바로 토드Toad다. [ 날짜 및 시간 기록 형식 설정 ] 상단 도구(T) ➡ 환경설정 ➡ 데이터베이스 ➡ NLS에서 날짜 형식, 시간 기록 형식 변경 *NLS란? (National Language Support)는 언어 지원과 관련된 파라미터를 지칭 관리자 창 워크시트에 날짜와 시간 불러오기 SELECT SYSDATE FROM DUAL; SELECT SYSTIMESTAMP FROM DUAL; [ 학습용 계정 설정 ] 관리자_sys 워크시트에 ..

    [52일차] 보조 스트림 / 네트워크 기초

    20221006(목) 목차 - 보조 스트림 - 네트워크 기초 보조 스트림 다른 스트림과 연결되어 여러 가지 편리한 기능을 제공해주는 스트림 문자 변환, 입출력 성능 향상, 기본 데이터 타입 입출력, 객체 입출력 등의 기능을 제공 보조 스트림 생성 보조스트림 변수 = new 보조스트림(연결스트림) 보조 스트림 체인 : 다른 보조 스트림과 연결되어 역할 수행 (1) 문자 변환 보조 스트림 InputStreamReader 소스 스트림이 바이트 기반 스트림이지만 데이터가 문자일 경우 사용 Reader와 Writer는 문자 단위로 입출력 - 바이트 기반 스트림보다 편리 문자셋의 종류를 지정할 수 있기 때문에 다양한 문자 입출력 가능 OutputStreamWriter (2) 성능 향상 보조 스트..

    [51일차] InputStream / OutputStream / Reader / Writer / 콘솔 입출력

    [51일차] InputStream / OutputStream / Reader / Writer / 콘솔 입출력

    20221005(수) 목차 - InputStream - OutputStream - Reader - Writer - 콘솔 입출력 바이트 기반 입력 스트림의 최상위 클래스 eclipse에서 IS 입력후 ctrl + space로 소환가능 InputStream is = new FileInputStream("C:/dorothy/Data/temp/test.txt"); 리턴 타입 메소드 설명 int read() 입력 스트림으로부터 1바이트를 읽고 읽은 바이트 리턴 read(byte[] b) 입력 스트림으로부터 읽은 바이트들을 매개값으로 주어진 바이트 배열 b에 저장하고 실제로 읽은 바이트 수를 리턴 read(byte[] b, int off, int len) 입력 스트림으로부터 len개의 ..

    [50일차] andThen()과 compose() 디폴트 메소드 /  메소드 참조 / 입력 스트림과 출력 스트림

    [50일차] andThen()과 compose() 디폴트 메소드 / 메소드 참조 / 입력 스트림과 출력 스트림

    20221004(화) 목차 - andThen()과 compose() 디폴트 메소드 - 메소드 참조 - 입력 스트림과 출력 스트림 함수적 인터페이스가 갖고 있는 디폴트 메소드 두 개의 함수적 인터페이스를 순차적으로 연결해 실행 첫 번째 리턴값을 두 번째 매개값으로 제공해 최종 결과값 리턴 andThen() 디폴트 메소드 - 인터페이스 AB = 인터페이스A.andThen(인터페이스 B); - 최종결과 = 인터페이스 AB.method(); - A를 쓰고 나서 B를 쓴다. compose() 디폴트 메소드 - 인터페이스 AB = 인터페이스A.compose(인터페이스 B); - 최종결과 = 인터페이스 AB.method(); - B를 먼저 작동하고 A가 진행..

    [49일차] 람다식 기본 문법 / 타겟 타입과 함수적 인터페이스 / 표준 API의 함수적 인터페이스

    [49일차] 람다식 기본 문법 / 타겟 타입과 함수적 인터페이스 / 표준 API의 함수적 인터페이스

    20220930(금) 목차 - 람다식 기본 문법 - 타겟 타입과 함수적 인터페이스 - 클래스 멤버와 로컬 변수 사용 - 표준 API의 함수적 인터페이스 람다식? - 자바 8부터 함수적 프로그래밍 위해 람다식 지원 // 자바8 = jdk1.8 같은의미! - 기존에 존재하던 람다식을 가져다 쓴 것임!! 👍 람다식 수용 이유 - 코드가 매우 간결해짐 - 컬렉션 요소(대용량 데이터)를 필터링 또는 매핑해 쉽게 집계 스레드의 익명구현객체 (일회성으로 코드작업) 일반적인 클래스 설계 및 객체생성구문 Runnable runnable = new Runnable() { public void run() {....} }; class Test implements Runnable { public void..

    [48일차] 제네릭 타입 / 멀티 타입 파라미터 / 제네릭 메소드 / 제한된 타입 파라미터 / 와일드카드 타입 / 제네릭 타입의 상속과 구현

    20220929(목) 목차 - 제네릭 타입 - 멀티 타입 파라미터 - 제네릭 메소드 - 제한된 타입 파라미터 - 와일드카드 타입 - 제네릭 타입의 상속과 구현 - class, interface ✨ 제네릭 특징 : 타입을 매개변수로 미리 정해 놓으면 ➡ 추후 관련된 메소드의 매개변수 타입이 변경된다. 제네릭 타입 - 타입을 파라미터로 가지는 클래스와 인터페이스 - 선언 시 클래스 또는 인터페이스 이름 뒤에 부호(=타입 파라미터) 붙임 일반클래스 vs 제네릭클래스 - 일반클래스 : 제네릭 미사용 - 제네릭클래스 : 제네릭 사용(타입만 다르고 클래스의 구조를 그대로 쓰고 싶을 경우 사용) class ArrayList { Integer a; } class ArrayList { String a..

    [47일차] Set 컬렉션(HashSet) / Map 컬렉션(HashMap, Hashtable, Properties) / 검색 기능을 강화시킨 컬렉션 / LIFO와 FIFO 컬렉션

    [47일차] Set 컬렉션(HashSet) / Map 컬렉션(HashMap, Hashtable, Properties) / 검색 기능을 강화시킨 컬렉션 / LIFO와 FIFO 컬렉션

    20220928(수) 목차 - Set 컬렉션(HashSet) - Map 컬렉션(HashMap, Hashtable, Properties) - 검색 기능을 강화시킨 컬렉션 - LIFO와 FIFO 컬렉션 Set 컬렉션 - 저장 순서가 유지되지 않음(List와 반대!) 😮 - 객체를 중복 저장 불가 - 하나의 null만 저장 가능 list / set / map 중 어떤 걸 사용해야 할까? 판단 필요 ➡ 예제를 거치면 판단가능! Set 인터페이스의 메소드 기능 메소드 설명 객체 추가 boolean add(E e) 주어진 객체를 저장, 객체가 성공적으로 저장되면 true 리턴, 중복 객체면 false 리턴 객체 검색 boolean contains(Object o) 주어진 객체가 저장되어 있는지..

    [46일차] 스레드 그룹 / 스레드풀 / 컬렉션 프레임워크 / List 컬렉션

    [46일차] 스레드 그룹 / 스레드풀 / 컬렉션 프레임워크 / List 컬렉션

    20220927(화) 목차 - 스레드 그룹 - 스레드풀 - 컬렉션 프레임워크 - List 컬렉션 스레드 그룹 관련된 스레드 묶어 관리 목적으로 이용 스레드 그룹은 계층적으로 하위 스레드 그룹 가질 수 있음 자동 생성되는 스레드 그룹 - system 그룹: JVM 운영에 필요한 스레드들 포함 - system/main 그룹: 메인 스레드 포함 스레드는 반드시 하나의 스레드 그룹에 포함 기본적으로 자신을 생성한 스레드와 같은 스레드 그룹 스레드 그룹에 포함시키지 않으면 기본적으로 system/main 그룹 스레드풀(Thread Pool) 작업 처리에 사용되는 스레드를 제한된 개수만큼 미리 생성 작업 큐(Queue)에 들어오는 작업들을 하나씩 스레드가 맡아 처리 작업 처리가 ..

    [45일차] 동기화 메소드와 동기화 블록 / 스레드 상태 / 스레드 상태 제어 / 데몬 스레드

    [45일차] 동기화 메소드와 동기화 블록 / 스레드 상태 / 스레드 상태 제어 / 데몬 스레드

    20220926(월) 목차 - 동기화 메소드와 동기화 블록 - 스레드 상태 - 스레드 상태 제어 - 데몬 스레드 멀티 스레드가 하나의 객체를 공유해서 생기는 오류 동기화? - 한 스레드가 사용 중인 객체를 다른 스레드에서 동시에 접근할 수 없도록 잠금을 걸어둘 수 있는 기능 더보기 user1 스레드가 먼저 메소드를 사용하게되면, lock이 걸리게되고, user2 스레드는 이 메소드를 진입을 못하게된다. user1 스레드가 작업이 끝나야 비로소 unlock이 되어, user2 스레드는 블럭상태가 해제가 되어 아래 메소드를 진입하게 된다. 2가지 방법 동기화 메소드 : 메소드에 걸고 싶은 경우 동기화 블록 : 직접적인 코드에 걸고 싶은 경우 public synchroniz..