2020-12-28 TIL
자바스크립트
자바스크립트
자바스크립트
자바 스크립트
Bean Container + DI = IoC Container
spring webMVC 핵심 엔진
controller로 변환
build 도구와 설정 파일
css
css
jsp
MVC 모델
Include
html과 서블릿 html 폼에 바뀌지 않는다면 html로 만드는 것이 속도 면에선는 더 빠르다 html이 웹 서버를 통해 바로 정보를 읽어오는 것이 서블릿을 실행하는 것보다 빠르기 때문이다. 하지만 만약 html 폼이 바뀐다면 서블릿으로...
기존 테이블을 수정해야 할 때
멀티파트
URI와 URL, URN의 관계
favicon.ioc eclipse workspace-.meta-plugins-servercore-tmp-root 아래에 둔다
uxui
WAS
Web Application Server Architecture(WAS)
pms 43 필터 추가 필터는 chain of responsibility 디자인 패턴을 사용한다. 필터는 리스터에 추가한다. 옵저버 패턴 람다 문법 https://coding-factory.tist...
애플리케이션 서버 아키텍쳐
db 모델 리뷰
로직 논리적인 지시 업무적인 것은 비지니스 로직, 화면에 관한 것은 프레젠테이셔널 로직, 데이터 베이스에 어떻게 데이터를 넣고 뺄것인지에 대해서는 퍼시스턴트 로직
«««< HEAD PMS
DB 모델링 DB 모델링 모델링? 시스템을 분석하고 구조화시켜 글과 그림으로 표현한 것. 렌더링? 명령어를 해석하여 화면에 출력하는 것. DB 모델링? 데이터를 분석하고 구조화시켜 데이터 속성과 관계를 글과 그림으로 펴현한 것. 목표? 데이터가 ...
Dynamic sql https://mybatis.org/mybatis-3/ko/dynamic-sql.html
MyBatis
chain of responsibility 링크드리스트 형식으로
로그인 권한 검사 각각의 커맨드마다 게시물에 대한 권한이 있는지 검사해야 한다.
인터페이스가 필요한 이유 BoardAddCommand 를 데이터베이스에 따라 DAO를 만든다. 이때 BoardAddCommand에 직접 사용할 클래스를 명시하면 클래스를 바꿀 때마다 코드를 변경해야 한다. 해결책 : 클래스...
JDBC
DBMS
DBMS - 37a
JDBC
JDBC
sql
sql - https://mariadb.com/kb/en/documentation/
stateful, stateless
커밋 메시지 스타일 가이드
챗봇 기반 방탈출 게임 만들기
MariaDB, MySQL
스레드풀 구현 mini-pms 36
요구사항 분석
스레드풀
34-g 클라이언트 명령이 들어오면 커맨드 객체를 찾아 실행한다. pms.handler.Command 변경 execute() 를 execute(PrintWriter out)로 변경 서버앱을 수정(쓸모없는 코드는 삭제)
34-c 사용자가 입력한 명령 처리 stateful 1) c/s projcet 준비 2) c/s 간에 메시지 송수신 테스트 3) 사용자 입력값 송수신 4) 다중 클라이언트 요청 처리 5) 스레드 적용 ...
33 파일 입출력에 옵저버 디자인 적용하기
Observer 패턴 특정 객체의 상태 변화에 따라 작업을 수행하고 싶을 때 사용하는 패턴. 메일 구독 서비스 특정 객체의 상태 변화에 따라 수행해야 하는 작업이 있을 경우, 기존 코드를 손대지 않고 손쉽게 기능을 추가하거나 제거할 수 있는 설계 기법이다. 발행/구...
데이터 레이스 스레드를 시작시키는 순간 running 상태로 접어든다. running 상태는 실행하고 있는 상태 뿐만 아니라, CPU를 받을 수 있는 상태이기도 하다. CPU는 OS의 관리 정책에 따라 스레드나 프로세스에 배분된다. 물론...
Thread https://brunch.co.kr/@kd4/3
HTTP HTTP는 Hypertext Transfer Protocol의 약자로, 전 세계의 웹브라우저, 서버, 웹 애플리케이션이 모두 사용하는 인터넷 공용어 신뢰성 있는 데이터 전송 프로토콜 사용; 인터넷의 결함 및 약점에 대한 걱정 없이 기능 구현 가능
character stream printwriter가 char stream을 전송할 때 flush()를 호출해야 한다. byte stream은 flush()가 없어도 된다. 헷갈린다면 무조건 flush()를 호출한다.
소켓 https://recipes4dev.tistory.com/153
JSON 속성-값 또는 키-값 으로 된 데이터 객체를 텍스트로 표현하는 개방형 표준 데이터 포맷이다. {속성:값, 속성:값, ...} 예) {"no":1,"name":"1","email":"1","password":"1","photo":"1","tel":"1"} ...
바이너리 포맷 VS 텍스트 포맷 바이너리 포맷 바이너리 포맷은 사람이 보기가 불편하다. 바이너리 포맷을 이해하는 전용 애플리케이션을 이용해야만 읽고 쓸 수 있다. 텍스트 포맷에 비해 크기가 작다. 바이...
한빛출판판네트워크 코딩 테스트 문제 유형 2020 검색해보시오
데코레이터 패턴 주어진 상황 및 용도에 따라 어떤 객체에 책임을 덧붙이는 패턴으로, 객체에 추가적인 요건을 동적으로 첨가하며, 기능 확장이 필요할 때 서브 클래스를 만드는 대신 쓸 수 있는 대안
io ex04 ~ ex08 입출력 중요
인코딩 AB가각 ms949 : 41 42 B0 A1 B0 A2 utf8 : 41 42 EA B0 80 EA B0 81 utf16be : 00 41 00 42 AC 00 AC 0 utf16be : 41 00 42 00 00 A...
트리구조 만들기
람다 vs 추상 메서드 다음과 같이 추상 메서드가 한 개 있는 인터페이스를 “functional interface”라고 부른다. -이런 경우에 람다 문법으로 사용할 수 있다. Player p1 = new Player() { @Override public ...
https://nesoy.github.io/articles/2019-05/GRASP-Pattern
예외처리문법
커맨드 디자인 패턴 메서드의 객체화 설계 기법 한 개의 명령어를 처리하는 메서드를 별개의 클래스로 분리 기존 소스에 손을 대지 않아서 유지 보수에 좋다. 명령 처리를 별도의 객체로 분리하기 때문에 실행 내역을 관리하기 좋고, 각 명령이 수행했던 작업을 다루기 편하다...
중첩 클래스
Iterator(반복자) 패턴 객체 목록을 관리하는 컬렉션에서 목록 조회 기능을 별도의 객체로 캡슐화하는(별도의 클래스로 정의해서 메서드를 정의하는 것) 것. 컬렉션의 관리 방식(data structure)에 상관없이 일관된 목록 조회 방법을 제공할 수 있다. 컬렉션을...
인터페이스
상속 상속의 종류 1) specialization 가장 많이 사용하는 방법으로 수퍼 클래스를 상속 받아 서브 클래스를 만드는 것이다. 수퍼클래스에 새 특징을 추가하거나 새 기능을 추가하여 더 특별한 일을 ...
제네릭 제네릭 문법이 없다면 각 타입의 객체를 저장하기 위해 각 타입에 대한 클래스를 정의해야 한다. 제네릭 문법은 코드의 안정성을 추구한다. 원하는 타입이 아닌 다른 타입의 값을 지정하는 오류를 막기 위해 만들어졌다. 각 객체 타입 별로 클래스를 생성해야 하면 타...
캡슐화 특정 역할을 수행하는 코드를 클래스라는 캡슐에 감추고 메서드라는 도구를 통해 해당 코드를 이용하게 하는 기법이다 메서드로 접근하게 할 때는 일단 프라이빗으로 막고 필요한 것만 퍼블릭으로 공개한다.
인스턴스 필드와 인스턴스 메소드가 필요한 이유
2020-08-18 TLI
추후 수정 심볼형 자바스크립트는 객체 프로퍼티 키로 오직 문자형과 심볼형만을 허용한다. 숫자형, 불린형 모두 불가능하다. 심볼 심볼(symbol)은 유일한 식별자(unique identifier)를 만들고 싶을 때 사용한다. Symbol() 을 사용하면 심볼...
옵셔널 체이닝 옵셔널 체이닝 ?. 을 사용하면 프로퍼티가 없는 중첩 객체를 에러 없이 안전하게 접근할 수 있다. 옵셔널 체이닝이 필요한 이유 사용자가 여러명 있는데 그 중 몇명은 주소 정보를 가지고 있지 않다고 가정한다. 이럴 때 user.address.stree...
new 연산자와 생성자 함수 객체 리터럴 {…}을 사용하면 객체를 쉽게 만들 수 있다. 개발을 하다보면 유사한 객체를 여러개 만들어야 할 때가 생긴다. 복수의 사용자, 메뉴 내 다양한 아이템을 객체로 표현하려고 하는 경우. new 연산...
메서드와 this
가비지 컬렉션
참조에 의한 객체 복사
폴리필
테스트 자동화와 Mocha
닌자 코드
코딩 스타일
Chrome으로 디버깅
기본 문법 요약
화살표 함수 기본
함수 표현식
switch문
While과 for 반복문
null 병합 연산자 ‘??’
논리연산자
If 와 ?를 사용한 조건 처리
비교 연산자
기본 연산자와 수학
형변환
alert, prompt, confirm을 이용한 상호 작용
자료형
변수와 상수
엄격 모드
코드 구조
자바스크립트 기본
42. 비즈니스 로직 분리하기 : 서비스 객체의 도입
37-b. 데이터 관리를 DBMS에게 맡기기 : SQL 삽입 공격과 자바 시큐어 코딩
Client
Server
Server
Observer 객체를 통하여 파일 다루기 ApplicationContextListener 인터페이스 변경
Observer 패턴 적용
Stateful 을 Stateless로 만들기
PMS 코드를 C/S로 분리
Server
mini-pms 02 회원 정보, 프로젝트 정보, 작업 정보를 출력한다.
mini-pms 01 Hello world를 출력한다.
pms project study
Generic
접근 제어 4개 방법이 있다. private : 현재 클래스 (default) : 현재 클래스 + 같은 패키지 protected : 현재 클래스 + 같은 패키지 + 서브 클래스 public : 모두 원칙은 ...
메서드 오버로딩 오버로딩(overloading)? 파라미터의 형식은 다르지만 같은 기능을 수행하는 메서드에 대해 같은 이름을 부여함으로써 프로그래밍의 일관성을 제공하기 위한 문법이다. 같은 일을 하더라도 값의 타입에 따라 메서드 이름이 다르다면 ...
메서드 오버라이딩 오버라이딩(overriding)? 부모로부터 상속 받은 메서드 중에서 자신(자식 클래스)의 역할에 맞지 않는 메서드가 있다면, 자신(자식 클래스)의 역할에 맞춰 상속받은 메서드를 재정의하여 프로그래밍의 일관성을 확보하는 문법이다. ...
상속 상속이란? 기존 코드의 수정을 최소화하면서 새 기능을 추가한다. 코드의 재사용성을 높인다. 상속이 없는 경우 기존의 소스 코드를 변경하게 되면 그 소스 코드를 사용해서 만든 프로그램들도 영향을 받는다. 이 경우 오류가 발생할 수 있다. ...
캡슐화(encapsulation) 클래스를 작성한 사람의 의도와 다르게 사용하지 못하도록 하는 것이 캡슐화다. 필드나 메서드의 외부 접근 범위를 조정하는 문법이다.
ArrayList 배열을 이용하여 컬렉션 클래스 만들기 : ArrayList 배열의 크기가 고정되기 때문에 배열을 초과하여 값을 넣으려면 더 큰 새 배열을 만들고 기존 값을 복사해야 한다. 배열의 크기가 늘어날 때마다 가비지가 새기는 문제가 있다...
1. 람다식01
생성자란?
클래스와 객체의 정의와 용도
AOP
스프링 DB 접근 기술
회원 관리 예제 - 웹 MVC 개발
스프링 빈과 의존관계
회원 관리 예제 - 백앤드 개발
스프링 웹 개발 기초
Spring 프로젝트 환경설정
계산기 서버와 클라이언트 만들기
TLI How to make LinkedList02
How to make Queue
TLI How to make LinkedList
TLI How to make ArrayList02
TLI How to make ArrayList
distinct 와 all
FK(Foreign Key) 다른 테이블의 PK를 참조하는 컬럼이다.
DQL(Data Query Language) 데이터를 조회할 때 사용하는 문법
DML(Data Manipulation Language) 데이터 등록, 변경, 삭제를 다루는 SQL 문법
DDL(Data Definition Language) DB 객체(테이블, 뷰, 함수, 트리거 등)를 생성, 변경, 삭제하는 SQL 명령이다.
Backjoon 2742
Backjoon 2557
main page 의 사이드바 인덱스를 다음과 같이 구성한다.
toc 설정하는 법
정규표현식
정규표현식
Data Persistence Framework - Mybatis