전체 글
AOP AOP는 관점 지향 프로그래밍(Aspect Oriented Programming)이다. 관점 지향 프로그래밍의 경우 공통 관심 사항과 핵심 관심 사항을 분리해서 설계하는 프로그래밍이다. 공통 관심 사항과 핵심 관심 사항의 분리 관심 사항을 분리하는 이유 1. 핵심 비즈니스 로직에 다른 로직이 섞이게 되면 유지보수가 어렵기 때문(핵심 관심 사항을 깔끔하게 유지할 수 있다.) 2. 변경이 필요하면 공통 관심 사항의 로직만 변경하면 된다. 3. 원하는 적용 대상을 선택할 수 있다.
목표 자바의 프리미티브 타입, 변수 그리고 배열을 사용하는 방법을 익힙니다. 학습할 것 프리미티브 타입 종류와 값의 범위 그리고 기본 값 프리미티브 타입과 레퍼런스 타입 리터럴 변수 선언 및 초기화하는 방법 변수의 스코프와 라이프타임 타입 변환, 캐스팅 그리고 타입 프로모션 1차 및 2차 배열 선언하기 타입 추론, var 1.프리미티브 타입 종류와 값의 범위 그리고 기본 값 기본형(Primitive)에는 총 8개의 타입이 있다. 논리형, 문자형, 정수형, 실수형으로 구분이 된다. # 기본형 **1. 논리형: boolean** -> true와 false 중 하나를 값으로 갖으며, 조건식과 논리적 계산에 사용된다. **2. 문자형: char** -> 문자를 저장하는데 사용되며, 변수에 하나의 문자만 저장할 ..
• 캐시X -데이터가 변경되지 않아도 계속 네트워크를 통해서 데이터를 다운로드 받아야 한다. -인터넷 네트워크는 매우 느리고 비싸다. -브라우저 로딩 속도가 느리다. -느린 사용자 경험 • 캐시O -캐시 덕분에 캐시 가능 시간동안 네트워크를 사용하지 않아도 된다. -비싼 네트워크 사용량을 줄일 수 있다. -브라우저 로딩 속도가 매우 빠르다. -빠른 사용자 경험 • 캐시 시간 초과 -캐시 유효 시간이 초과하면, 서버를 통해 데이터를 다시 조회하고, 캐시를 갱신한다. -이때 다시 네트워크 다운로드가 발생한다. • 캐시 유효 시간이 초과해서 서버에 다시 요청하면 다음 두 가지 상황이 나타난다. 1. 서버에서 기존 데이터를 변경함 2. 서버에서 기존 데이터를 변경하지 않음 -캐시 만료후에도 서버에서 데이터를 변..
• 인증 Authorization 클라이언트 인증 정보를 서버에 전달함. Authorization: Basic xxxxxxxxxxxxxxxx 이런 식으로 나타낸다. WWW-Authenticate 리소스 접근시 필요한 인증 방법에 대한 정의이다. 401 Unauthorized 응답과 함께 사용함.\ • 쿠키 -Set-Cookie: 서버에서 클라이언트로 쿠키 전달(응답) -Cookie: 클라이언트가 서버에서 받은 쿠키를 저장하고, HTTP 요청시 서버로 전달(헤더에 포함) • 모든 요청에 정보를 넘기는 문제 -모든 요청에 사용자 정보가 포함되도록 개발 해야함 -브라우저를 완전히 종료하고 다시 열면? • 쿠키 사용처 -사용자 로그인 세션 관리 -광고 정보 트래킹 -쿠키 정보는 항상 서버에 전송됨 -네트워크 트..
• HTTP Header -HTTP 전송에 필요한 모든 부가정보 -예) 메시지바디의 내용, 메시지 바디의 크기, 압축, 인증, 요청 클라이언트, 서버 정보, 캐시 관리 정보... 표현 • Content-Type -표현 데이터의 형식이다. 미디어 타입, 문자 인코딩 ex) text/html; charset=utf-8, application/json, image/png 등 • Content-Encoding -표현 데이터의 압축 방식이다. 표현 데이터를 압축하기 위해 사용하며, 데이터를 전달하는 곳에서 압축 후 인코딩 헤더 추가,데이터를 읽는 쪽에서 인코딩 헤더의 정보로 압축 해제함 • Content-Language -표현 데이터의 자연 언어이다. ex) ko, en, en-US • Content-Length..
상태 코드 클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능 • 1xx (Informational): 요청이 수신되어 처리중 • 2xx (Successful): 요청 정상 처리 • 3xx (Redirection): 요청을 완료하려면 추가 행동이 필요 • 4xx (Client Error): 클라이언트 오류, 잘못된 문법등으로 서버가 요청을 수행할 수 없음 • 5xx (Server Error): 서버 오류, 서버가 정상 요청을 처리하지 못함 만약 클라이언트가 인식할 수 없는 상태 코드를 서버가 반환하는 경우 상위의 상태 코드로 해석해서 처리함 *Redirection: 웹 브라우저는 3xx 응답의 결과에 Location 헤더가 있으면, Location 위치로 자동 이동 (리다이렉트) --------..
• 클라이언트 -> 서버 데이터 전달 방식 -쿼리 파라미터를 통한 데이터 전송: GET(정적, 동적 데이터 조회) -메시지 바디를 통한 데이터 전송: POST,PUT,PATCH(HTML Form, API 등을 통한 데이터 전송) *HTML Form 전송은 GET,POST만 지원하며, 일반적으로 많이 쓰이는 것은 POST 메서드이다. HTML Form submit시 POST 메서드로 HTTP 요청 메시지가 전송이 된다. Content-Type으로는 주로 application/x-www-form-urlencoded을 사용한다. *HTTP API 전송은 POST,PUT,PATCH의 경우에는 HTTP 메시지 바디를 통해 데이터를 전송하고, GET의 경우에는 조회, 쿼리 파라미터로 데이터를 전달한다. Conten..
• API URI 설계 • 회원 목록 조회/read-member-list • 회원 조회/read-member-by-id • 회원 등록/creat-member • 회원 수정/update-member • 회원 삭제/delete-member 이것은 좋은 URI 설계가 아니다. 가장 중요한 것은 리소스 식별이다. 리소스는 회원이라는 개념 자체가 리소스다. 읽기, 생성하기, 업데이트하기, 삭제하기가 리소스가 아님(동사가 아닌 명사여야 함) -> 즉, 회원이라는 리소스만 식별하면 된다.(회원 리소스를 URI에 매핑) • 회원 목록 조회/member • 회원 조회/members/{id} • 회원 등록/members/{id} • 회원 수정/members/{id} • 회원 삭제/members/{id} 리소스와 행위를 분..
