📚 관련 독서

🧩 값 검증 사용자가 요청을 보냈을 때 올바른 값인지 유효성 검사를 하는 과정 - 검사 위치 : 어느 계층에서 해도 OK이지만 보통 프레젠테이션 계층에서 컨트롤러에 요청이 오는 순간 검증 코드 작성 - 서버의 안정성을 챙길 수 있다. ▷ Java Bean Validation API : 애너테이션 기반 검증 & 데이터 유효성 검사 /* 문자열 다룰 때 사용 */ @NotNull// null 사용하지 않음 @NotEmpty// null, 공백/공백만으로 채워진 문자열 허용X @NotBlank// null, 공백 허용X @Size(min=?, max=?)// 최소 길이, 최대 길이 제한 @Null// null만 가능 /* 숫자 다룰 때 사용 */ @Positive// 양수만 허용 @PositiveZero// ..
📗 CI/CD 빌드부터 배포까지의 과정을 자동화하고, 잘 되는지 모니터링 하는 방법 🧩 CI (Continuous Integeration, 지속적 통합) - 빌드와 테스트를 자동화하는 과정 - 변경 사항을 자동으로 테스트해 애플리케이션에 문제 없음 보장 - 코드를 정기적으로 빌드, 테스트하므로 여러 명이 동시에 작업해도 충돌 방지하고 모니터링 가능 🧩 CD (Continuous Deployment, 지속적 제공과 지속적 배포) - 배포 준비가 된 코드를 자동으로 서버에 배포하는 작업을 자동화하는 것 ○ 지속적 제공에서의 CD - 애플리케이션에서 적용한 코드의 빌드와 테스트를 성공적으로 진행했을 때, 코드 저장소(예 : 깃허브)에 자동으로 업로드하는 과정 ○ 지속적 배포에서의 CD - 릴리스 = 지속적 제..
📗 AWS ⭐ 배포 : 실제 서버에 스프링 부트 서버를 올려 실행하는 것 AWS란? 클라우드 컴퓨팅 서비스를 이용해 배포하는 것 AWS로 서비스 배포하기 ⭐ 🧩 EC2 - AWS에서 제공하는 클라우트 컴퓨팅 서비스. (원격 서버) - 가상의 PC = 서버 1대 🧩 오토 스케일링 그룹 - 유동적으로 EC2 관리 - 사용자의 요청 횟수에 따라 EC2 늘이거나 줄임 🧩 로드 밸런서 - 요청 분산시키는 역할 - 대상 그룹 (타깃 그룹) : 요청 어디로 분산시킬지 정하는 그룹 🧩 RDS - AWS에서 제공하는 원격 DB S3 - 파일 저장소 일래스틱 빈스토크 ⭐ 앞의 서비스를 한 번에 설정. 서버 업로드용 코드만 작성해도 서버를 쉽게 올릴 수 있음 ② 번들 형태 (.war 파일)로 일래스톡 빈스토크에 업로드 ③ ..
📗 OAuth ⭐ 📌 OAuth란? 제3서비스에 계정 관리를 맡기는 방식 (네이버 로그인, 구글 로그인) 🧩 OAuth 용어 정리 리소스 오너 (Resource Owner) - 자신의 정보를 사용하도록 인증 서버에 허가하는 주체 → 서비스 이용하는 사용자 리소스 서버 (Resource Server) - 리소스 오너의 정보를 가지며, 리소스 오너의 정보를 보호하는 주체 → 네이버, 구글, 페이스북 인증 서버 (Authorization server) - 클라이언트에게 리소스 오너의 정보에 접근할 수 있는 토큰을 발급하는 역할을 하는 애플리케이션 클라이언트 어플리케이션 (Client Application) - 인증 서버에게 인증을 받고 리소스 오너의 리소스를 사용하는 주체 → 지금 만들고 있는 서비스 🧩 리소..
📗 토큰 기반 인증 ⭐ 토큰 기반 인증 인증 정보를 서버/세션에 저장하지 않고, 클라이언트 측에서 발급받은 토큰으로 인증하는 방식 * 토큰이란? 서버에서 클라이언트를 구분하기 위한 유일한 값 토큰을 전달하고 인증받는 과정 - 서버가 토큰을 생성해 클라이언트에게 제공하면, 클라이언트는 이 토큰을 갖고 있다가 요청할 때마다 요청 내용과 함께 토큰을 전송한다. (= 토큰을 갖는 주체 : 클라이언트) 토큰 기반 인증 특징 ① 무상태성 사용자의 인증 정보가 담긴 토큰이 서버가 아닌 클라이언트에 있어 서버에 저장할 필요가 없음을 의미. - 상태 관리 : 클라이언트에서 사용자의 인증 상태를 유지하면서 이후 요청을 처리하는 것 → 서버는 무상태로 효율적인 검증 가능 ② 확장성 토큰을 가지는 주체가 클라이언트이므로 갖고..
스프링 시큐리티 ver. 로그인/로그아웃, 회원 가입 📗 스프링 시큐리티⭐ ⭐ 인증과 인가 - 인증 (Authentication) : 등록된 사용자의 신원을 입증하는 과정 (예 : 로그인 시 누구인지 확인하는 과정) - 인가 (Authorization) : 특정 부분에 접근할 수 있는지 권한을 확인하는 작업 (예 : 관리자 페이지) 스프링 시큐리티 (P.201,202) 스프링 기반 애플리케이션 보안(인증, 인가,권한)을 담당하는 스프링 하위 프레임워크 - 역할 : 보안 관련 옵션 제공 (CSRF 공격, 세션 고정 공격 방어) * CSRF 공격 : 사용자 권한을 갖고 특정 동작을 수행하도록 유도하는 공격 * 세션 고정 공격 : 사용자의 인증 정보를 탈취하거나 변조하는 공격 - 필터 기반 동작 Usernam..
📗 타임리프 ⭐ 📍 템플릿 엔진 개념잡기 템플릿 엔진 : 스프링 서버에서 데이터를 넘겨받아 HTML에 데이터를 넣어 동적 웹 페이지를 만들어주는 도구 타임리프 표현식 ${..} : 변수의 값 표현식 #{..} : 속성 파일 값 표현식 @{..} : URL 표현식 *{.} : 선택한 변수의 표현식. th:object에서 선택한 객체에 접근 타임리프 문법 th:text 텍스트 표현 시 사용 th:text=${person.name} th:each 컬렉션 반복 시 사용 th:each="person:${persons}" th:if 조건이 true일 때만 표시 th:if="${person.age} >= 20" th:unless 조건이 false일 때만 표시 th:unless="${person.age} >= 20" ..
입출력장치, CPU나 메모리보다 다루기 더 까다롭다. WHY? 1) 입출력장치, 종류가 너무 많기 때문 → 규격화 어려움 2) 입출력 장치의 데이터 전송률은 CPU와 메모리에 비해 낮기 때문 (* 전송률 : 데이터를 얼마나 빨리 교환할 수 있는지 나타내는 지표) 🧩 장치 컨트롤러 입출력 장치를 연결해 컴퓨터 내부와 정보를 주고 받음 ○ 하드디스크 역할 CPU와 입출력 장치 간 통신중개 오류 검출 데이터 버퍼링 버퍼링 : 전송률 높은 장치와 낮은 장치 간 주고받는 데이터를 버퍼에 저장해 전송률을 비슷하게 맞추는 방법 구조 : 데이터 레지스터, 상태 레지스터, 제어 레지스터 🧩 장치 드라이버 장치 컨트롤러의 동작을 감지하고 제어하는 프로그램 (SW적 통로) 입출력 방식 1. 프로그램 입출력 프로그램 속 명령..
🧩 다양한 보조기억장치 ○ 하드디스크 - 자기적 방식으로 데이터 저장 - 플래터 양면 모두 사용 [구성] : 헤드, 디스크 암, 스핀들, 플래터 [저장 단위] : 플래터 (트랙, 섹터), 실린더 (여러 겹 플래터 상에서 같은 트랙이 위치한 곳 모아 연결) ┕ 블록 : 한 개 이상의 섹터 [데이터 접근 과정] 탐색 시간 : 접근하려는 데이터가 저장된 트랙까지 헤드를 이동시키는 시간 회전 지연 : 헤드가 있는 곳으로 플래터를 회전시키는 시간 전송 시간 : 하드 디스크와 컴퓨터 간 데이터를 전송하는 시간 ○ 플래시 메모리 전기적으로 데이터를 읽고 쓰는 반도체 기반 저장 장치 - 셀 플래시 메모리에서 데이터를 저장하는 가장 작은 단위 모여서 MB > GB > TB가 됨 [저장 단위] 셀 < 페이지 < 블록 < ..
imname1am
'📚 관련 독서' 카테고리의 글 목록