1~7 자바 이전 내용 요약 정리
자바 정리/클래스 사용법2
- 메서드 사용법(eomcs-java-lang: com.eomcs.lang.ex07.*) - 클래스 사용법(eomcs-java-lang: com.eomcs.oop.ex01.*)
2022.07.19 화요일/자바 정리/클래스사용법
클래스 사용법/static/instance
스태틱 필드의 한계/인스턴스 필드, 인스턴스 메서드, 생성자 사용법
CRUD 구현/패키지를 이용하여 클래스를 분류하는 방법 + 접근 제어 조정/공통 코드(필드,메서드)를 공유하는 방법 : 상속
클래스 사용법 - 스태틱 필드와 인스턴스 필드 - 스태틱 메서드와 인스턴스 메서드, THIS 내장 변수 - 생성자와 THIS() - 스태틱 초기화 블록, 스태틱 변수 초기화 문장 - 인스턴스 초기화 블록, 인스턴스 변수 초기화 문장
# 클래스 사용법 - 상속을 통한 기능 확장법 - UML: 클래스 간의 5가지 관계 - 기타 기능 확장법
- board-app 프로젝트 수행 - 공통 코드(필드,메서드)를 공유하는 방법 : 상속 - String 클래스 사용법(eomcs-java-lang: com.eomcs.basic.ex02.*)
- board-app 프로젝트 수행 - 016. 예외를 처리하는 방법 1 - 017. 예외를 처리하는 방법 2 - 018. 예외를 발생시키는 방법
- 예외를 다루는 방법 - 사용자 정의 예외를 다루는 방법
2022.08.01/자바 정리/자료구조를 구현하고 다루는 방법:LinkedList/상속이 아닌 위임으로 코드 공유
- board-app 프로젝트 수행 - 022. 자료구조를 구현하고 다루는 방법: Linked List 구현 및 사용 - 021 버전에 LinkedList 적용 - 023. 메서드 사용법을 규격화하여 객체 사용 방법을 일관성 있게 만들기: 인터페이스
추상 클래스를 활용하여 인터페이스의 일부를 미리 구현하기 중첩 클래스 문법을 이용하여 클래스 사용 범위를 제한하기 스택 자료 구조를 활용하여 브래드크럼 메뉴 만들기 인터페이스를 이용하여 핸들러의 사용법을 규격화 하기
- 029. 추상 클래스를 사용하여 핸들러의 공통 기능 구현하기: 템플릿 메서드 패턴 적용 - 030. List가 특정 타입의 목록만 다루게 하는 방법: 제네릭 문법 적용 - 031. 기존 List 구현체를 자바 컬렉션 API로 교체하기: java.util 패키지
Iterator 패턴과 중첩 클래스 사용법
- 031. 데이터 조회 로직을 객체화 하기: Iterator 패턴 적용 - 032. 기존 List 구현체를 자바 컬렉션 API로 교체하기: java.util 패키지의 클래스 사용 - 033. 입출력 API를 사용하여 데이터를 파일로 저장하기: 바이너리 저장
- 033. 입출력 API를 사용하여 데이터를 파일로 저장하기: 바이너리 저장(계속) - 034. Primitive 타입 및 String 타입 데이터를 가공하여 입출력하는 기능을 객체화하기 - FileOutputStream/FileInputStream 사용법
- 035. 자바에서 제공하는 데코레이터를 사용하기 - 036. 인스턴스를 통째로 입출력하기: 객체 직렬화 - 037. 인스턴스를 텍스트 형식으로 입출력하기: FileReader/FileWriter - 038. 리팩토링: Factory Method 패턴, I
039. JSON 형식으로 데이터 입출력하기: Gson 라이브러리 사용 - JSON 형식으로 데이터를 읽고 쓰는 법 - Google 에서 제공해주는 JSON 라이브러리인 Gson 사용법 040. 네트워킹을 이용한 파일 공유: client/server
- board-app 프로젝트 수행 - 040. 네트워킹을 이용한 파일 공유: client/server app. 아키텍처로 전환(계속) - 네트워크 프로그래밍 개요 - ServerSocket, Socket 클래스 사용법 - IP 주소와 포트 번호
board-app 프로젝트 수행 040. 네트워킹을 이용한 파일 공유: client/server app. 아키텍처로 전환(계속) 041. Client/Server 리팩토링 네트워크 프로그래밍 개요 ServerSocket, Socket 클래스 사용법 IP 주소와 포트 번호 040. 네트워킹을 이용한 파일 공유: client/server ap...
- board-app 프로젝트 수행 - 041. Client/Server 리팩토링 - Hashtable, ArrayList 활용 - 클라이언트 연결을 순차적으로 처리 - 컬렉션 API 사용법(com.eomcs.basic.ex03.*)(계속)
- Proxy 패턴의 이해와 활용법 - Connection-Oriented 통신과 Connectionless 통신 비교 - Stateful 통신 방식과 Stateless 통신 방식 비교
- board-app 프로젝트 수행 - 045. Thread를 이용한 멀티 태스킹 구현하기: 동시 요청 처리하기 - 네트워킹 사용법(com.eomcs.net.*)
네트워킹 사용법
네트워킹 사용법/스레드 사용법멀티 태스킹 기법: 멀티 프로세싱, 멀티 스레딩CPU 스케줄링, 컨텍스트 스위칭
스레드 사용법(com.eomcs.concurrent.\*)(계속)Thread, Runnable 사용법중첩 클래스를 다루는 방법board-app 프로젝트 수행 Thread를 이용한 멀티 태스킹 구현하기: 동시 요청 처리하기(계속)리팩토링: 중첩 클래스 활용runnable
스레드 사용법(com.eomcs.concurrent.\*)(계속)스레드 라이프사이클 크리티컬 섹션과 스레드 안전뮤텍스와 세마포어자바에서 뮤텍스를 다루는 방법DBMS 사용법Database와 DBMSMariaDB 설치와 설정메인스레드가 다른 스레드들보다 먼저 종료되더라도
mariaDB 설치(mac) 파일관리자 등장 1. 각 APP이 파일 관리 APP끼리 데이터 공유가 힘들다. 2. APP끼리 파일 공유 다른 APP의 데이터를 덮어쓸 수 있다. 접근 권한 제어가 필요하다. 3. 파일 관리자 도입 APP 개발을 할 때마다 파일
스키마 = 데이터베이스 DDL index 검색 조건으로 사용되는 컬럼인 경우 따로 정렬해 두면 데이터를 찾을 때 빨리 찾을 수 있다. 특정 컬럼의 값을 A-Z 또는 Z-A로 정렬시키는 문법이 인덱스이다. DBMS는 해당 컬럼의 값으로 정렬한 데이터 정보를 별도의 파일로 생성한다. 보통 책 맨 뒤에 붙어있는 색인표와 같다. 인덱스로 지정된 컬럼의 값이 추가...
- SQL 사용법 - DML 사용법(계속) - PK, FK - 조인 예제 테이블 준비
SQL 사용법조인 사용법서브 쿼리 사용법GROUPING 사용법DB 모델링ER-Diagram 도구 설치(www.exerd.com)
DB 모델링 엔티티 식별 및 속성 식별 제1,2,3 정규화 방법 논리 모델링 및 물리 모델링 포워드 엔지니어링을 통해 DDL 생성 및 테이블 생성 DB 모델링 모델링? 시스템을 분석하고 구조화시켜 글과 그림으로 표현(추상화)한 것. 렌더링? 명령어를 해석하여 화면에 출력하는 것. 예) HTML 렌더링 => HTML 태그를 해석하여 그에 ...
JDBC 프로그래밍(com.eomcs.jdbc.*) DBMS Native API 와 ODBC API 개념 JDBC Driver 유형 JDBC 프로그래밍 절차 Driver 구현체 생성 및 DriverManager에 등록하는 방법 DBMS에 연결하는 방법
JDBC 프로그래밍(com.eomcs.jdbc.\*)insert, select, update, delete 을 다루는 법SQL 삽입 공격을 막는 방법: Statement와 PreparedStatement트랜잭션 다루기
board-app 프로젝트 수행 DBMS 도입하기: DBMS를 이용해 데이터를 처리하는 방법
board-app 프로젝트 수행 047. Connection 객체 공유하기 048. Connection 객체 공유하기 II - 의존 객체 주입 방식 049. DAO 객체를 교체하기 쉽게 만들기 - 의존 객체 주입과 인터페이스 050. 트랜잭션 다루기 - 자동 커밋과 수동 커밋 의존 객체 생성 및 Connection 생성 메서드 호출할 때마...
board-app 프로젝트 수행 Application Server 구조로 전환하기→ 애플리케이션을 서버에서 실행하는 방법
Application Server 구조로 전환하기애플리케이션을 서버에서 실행하는 방법
board-app 프로젝트 수행 052. Web Application Server 구조로 전환하기 - 웹 기술 도입(계속) 053. 명령처리 부분에 Command 패턴을 적용하기 054. Command 객체의 사용법 통일하기 - 인터페이스 활용 055.
board-app 프로젝트 수행 애노테이션과 리플렉션 API를 활용하여 객체 자동 생성하기(계속)웹서버와 애플리케이션 서버 기능 분리하기웹 애플리케이션 서버를 자바 표준 웹 기술로 대체하기: Servlet/JSPreflection 객체를 사용하면 객체를 자동생성되게 할
- 서블릿 프로그래밍 - JSP로 만드는 서블릿 클래스의 규격 - board-app 프로젝트 수행 - 061. JSP를 이용하여 출력문을 자동으로 생성하기: MVC 모델1(계속) - 062. JSP에 있는 자바 코드를 Servlet으로 분리하기: MVC 모
065. 로그인, 로그아웃 처리하기: HttpSession, Cookie 사용 HttpSession을 사용하여 로그인, 로그아웃을 처리하는 방법 클라이언트 별로 세션을 구분하는 원리 1단계 - 로그인 폼을 만든다. /webapp/auth/form.jsp 생성
EL(Expression Language)OGNL 표기법을 사용하여 객체의 프로퍼티 값을 조회${board.title}에서 title은 필드명이 아니라 프로퍼티, (setTitle, getTitle)의 title을 가르킨다.JSTL 사용법search.maven.org에
필터 구동 원리 필터 만들기
multipart/doc/model.exerd 변경/doc/ddl.sql 변경/doc/data.sql 변경/webapp/board/form.jsp 변경charlesproxy 프로그램으로 multipart/form-data 형식으로 넘어가는 프로토콜 확인apache의 c
- 서블릿 프로그래밍 - Servlet 3.0 에 추가된 API를 사용하여 파일 업로드를 처리하는 방법 - board-app 프로젝트 수행 - 069. 파일을 업로드하기: multipart/form-data MIME 타입(계속) - 070. 파일을 업로드하
071. 파일을 업로드하기 2: Serlet API로 파일 업로드 처리하기 BoardDao class >에서 비즈니스 로직과 데이터 처리를 모두 담당 insert() 메서드로 게시글 입력과 첨부파일 입력을 모두 처리한다. ⇒ 만약 다른 프로젝트에서 첨부파일을 다루지
board-app 프로젝트 수행 074. 서비스 객체에 트랜잭션 적용하기 075. DB 커넥션을 공유했을 때 발생하는 문제 해결하기 076. 트랜잭션 관리자 역할을 별도의 클래스로 분리하기 074. 서비스 객체에 트랜잭션 적용하기1 작업 성공의 예 트랜잭션
서블릿 프로그래밍 프론트 컨트롤러 디자인 패턴의 목적과 활용 방법 board-app 프로젝트 수행 076. 트랜잭션 관리자 역할을 별도의 클래스로 분리하기 077. Front Controller 디자인 패턴 도입하기 078. 페이지 컨트롤러를 POJO로 전환하기 077. Front Controller 도입 Front Controller 도입...
스프링 프레임워크Spring IoC 컨테이너 사용법Spring WebMVC 프레임워크 사용법board-app 프로젝트 수행 Spring IoC 컨테이너 도입하기: 페이지 컨트롤러 생성 자동화Spring WebMVC 프론트 컨트롤러 도입하기Spring IoC 컨테이너를
new AnnotationConfigApplicationContext(AppConfig.class)AppConfig.class : Spring IoC 컨테이너의 설정을 수행하는 클래스AppConfig(자바 config) 객체 생성클래스나 메서드, 필드에 붙은 애노테이션
Spring WebMVC 프레임워크 사용법@RequestMapping 사용법스프링의 characterEncodingFilter 사용법필터를 자바 코드로 배치하는 방법요청 핸들러(request handler)의 파라미터 다루는 방법request handler: 요청이 들
여러 개의 프론트 컨트롤러를 설정하는 방법프론트 컨트롤러 별로 필터를 설정하는 방법com.bitcamp.board.config.RootConfig 클래스 생성com.bitcamp.board.config.DatabaseConfig 클래스 생성com.bitcamp.boar
메서드를 통해 넘어온 값이 Wrapper 객체이거나 String 객체일 경우 이름은 아무거나 써도 상관없다.Mybastis SQL 매퍼를 사용하여 DAO를 구현하는 방법search.maven.org 에서 'mybatis' 검색한다.mybatis 라이브러리 파일searc
Monolithic vs. Microservices SpringBoot와 라이브러리, 그리고 설정 088. SpringBoot 적용하기 SpringBoot 사용법 1단계 - spring.io 사이트에서 SpringBoot 프로젝트 템플릿을 생성한다. SpringB
h1 : HTMLcolor:red : CSSalert('하하하') : JavaScriptJavaScript → 사용자 액션(행위), 콘텐트 제어, 스타일 제어\+html → 콘텐트\+CSS → 콘텐트의 모양 ⇒ 즉, 스타일은 CSS로 제어해야한다.단점: 다른 HTML에