반응형
[Spring] Spring Security의 핵심 개념
·
Back/01. Spring
01. Spring Security 소개Spring Security는 자바 기반 애플리케이션에서 인증(Authentication)과 인가(Authorization) 등 보안 기능을 체계적으로 구현할 수 있도록 돕는 프레임워크이다. Spring 프레임워크와 자연스럽게 연동되어 다양한 인증 방식과 보안 기능을 손쉽게 적용할 수 있다.02. Spring Security 등장 배경Spring Security는 자바 웹 애플리케이션에서 인증과 권한 관리 같은 보안 기능을 효과적으로 구현하기 위해 등장한 프레임워크이다. 과거에는 J2EE에서 제공하는 기본 보안 기능(예: 서블릿 필터나 EJB 보안 등)이 현업의 다양한 요구사항을 만족시키기에 부족했고, 서버나 환경이 달라질 때마다 보안 설정도 복잡하게 달라져야 했다..
웹 보안의 주요 위협과 공격 유형
·
Back/01. Spring
현재 우리 사회에서는 인터넷 없이는 살기 어려운 세상을 살고 있다. 온라인 뱅킹, 소셜 미디어, 업무 시스템 등등 웹 서비스 기반으로 이루어지고 있다. 하지만 이러한 편리함 뒤에는 항상 보안 위협이라는 어두운 그림자가 드리워져 있다. 개발한 서비스가 아무리 멋진 기능을 제공하더라도, 보안에 취약하다면 사용자의 신뢰와 막대한 손실을 입을 수 있다. SQL Injection SQL Injection이란, 코드 인젝션의 한 기법으로 Client의 입력값을 조작하여 서버의 데이터베이스를 공격할 수 있는 해킹 기법이다. 공격자가 사용자 이름 혹은 비밀번호 입력 양식 필드에 SQL 쿼리를 삽입하여 애플리케이션 코드의 취약성을 악용하여 공격하는 유형이다. 이러한 공격은 공격성이 취약한 WordPress 플러그인 등과..
React 설치 및 기본 명령어
·
Front/02. React
1. React란 ? React는 페이스북에서 개발한 자바스크립트 기반의 사용자 인터페이스 라이브러리이다. 주로 화면(View)을 쉽고 효율적으로 만들기 위해 사용된다. React 주요 특징 컴포너트 기반의 구조UI를 여러 개의 독립적인 컴포넌트로 나누어 개발한다. 재사용과 유지보수가 쉽고 전체 코드를 파악하기 수월하다. 단방향의 데이터 흐름데이터가 한 방향으로 흘러, 복잡한 애플리케이션에서도 데이터 변화 추적이 쉽고 예측 가능하다. Virtual Dom 사용 가상의 돔을 메모리에서 관리하고, 데이터가 변경될 때마다, 변경된 부분만 실제 DOM에 반영된다. 이로 인해, 성능이 뛰어나고 빠른 화면 갱신이 가능하다. JSX 문법 사용자바스크립트 파일 안에서 HTML과 유사한 문법(JSX)을 사용해 UI를 선..
[API 설계] HTTP 메서드 정리
·
Back/04. API 설계
HTTP HTTP란 Hypertext Transfer Protocol의 약자로, 웹에서 데이터를 주고받는 서버-클라이언트 모델의 프로토콜이다.WWW(World Wide Web)의 토대이며, 하이퍼텍스트 링크를 사용하여 웹 페이지를 로드하는데 사용된다. HTTP는 네트워크 장치 간 정보를 전송하도록 설계된 Application 계층의 프로토콜이다. HTTP 요청에 들어가 있는 정보-- 요청 라인POST /login HTTP/1.1-- 요청 헤더Host: www.example.comContent-Type: application/jsonAuthorization: Bearer abc123Content-Length: 52-- 요청 본문{ "username": "user1", "password": "pass12..
[SPRING] IOC & DI
·
Back/01. Spring
IOC와 DI란?IOC (Inversion of Control)제어의 역전을 의미. 객체의 제어권을 개발자가 아닌 외부 시스템에 넘기는 설계 패턴이다. 외부에서 객체를 직접 관리하고 제공 받는다. 이를 통하여, 코드의 결합도를 낮추고 유연성을 높일 수 있다. DI (Dependency Injection)IOC의 구현 방식 중 하나로, 객체가 필요한 의존성을 외부에서 주입받는 방식이다.객체 간 결합도를 줄이고, 코드의 재사용성과 테스트 용이성을 높인다.구현 방식 : 생성자 주입, Setter 주입, 필드 주입 등..IOC, DI 개념이 중요한 이유결합도 감소: 객체 간 강한 결합을 제거 → 독립적인 모듈 설계 가능유연성 증가: 코드 변경 및 확장이 쉬워 유지보수 용이테스트 용이성: 의존성을 외부에서 주입 ..
[SQL] ORDER BY & GROUP BY, 정렬과 그룹화
·
Back/03. SQL
ORDER BY 문법과 사용 예제Order By는 결과를 정렬하는 기능을하고 주로 ASC, DESC와 같이 사용한다. 아래 예제와 같이 쿼리 마지막에 위치한다. Order By는 기본적으로 결과를 오름차순으로 정렬한다. 내림차순으로 정렬하고 싶을 때에는 DESC를 사용하고 오름차순으로 정렬하고 싶을 때에는 ASC를 사용하면 된다. 이중으로 정렬하고 싶을 때는 아래 예제와 같이 ,(콤마)를 사용하면 된다. SELECT name, department, salary FROM employeesORDER BY department ASC, salary DESC;GROUP BY 문법과 사용 예제Group By는 동일한 값을 갖는 행을 그룹화한다. 종종 집계함수(COUNT(), MAX(), MIN(), SUM(), A..
[API 설계] CORS 개념
·
Back/04. API 설계
CORS 기본 개념 및 원리CORS란 ? Cross-origin resource sharing의 약자로, 웹 페이지에서 제한된 리소스를 다른 도메인으로부터 요청할 수 있도록 허용하는 구조를 말한다. 특정 교차 도메인 간(cross-domain) 요청, Ajax 요청은 SOP 원칙으로 인해 기본적으로 금지한다. CORS는 웹 페이지 내 제한된 정보를 최초 자원이 서비스된 도메인 밖의 다른 도메인으로부터 요청할 수 있게 허용하는 구조이다. CORS Cross-origin resource sharing을 번역하면 "교차 출처 리소스 공유"라고 한다. 여기서 출처는 URL에서 도메인에 프로토콜과 포트까지를 포함하는 개념이다. 여기서 도메인, 프로토콜, 포트 중 하나라도 다르면 CORS 에러를 만나게 된다. CO..
[Docker] Dockerfile과 쿠버네티스
·
SERVER & Infra/02. Docker & Kubernetes
Dockerfile Docker는 Dockerfile을 읽어 이미지를 자동으로 빌드가 가능하다. Docker Image를 생성하기 위한 텍스트 파일 Docker Image를 구성하는 과정을 자동화하고 세부 사항을 정의한다. Dockerfile을 통해 Docker Image 빌드를 자동화하고 버전 관리가 가능하다. Dockerfile을 사용하는 이유는 ? 자동화 및 효율성Dockerfile은 Container를 생성하고 필요한 설정을 자동으로 수행하는데, 이를 통해 명령어를 일일이 입력하거나, 환경을 수작업으로 구성하는 번거로움을 덜 수 있다. 재사용성과 일관성동일한 Dockerfile 사용 시, 동일한 Docker Image를 동일한 환경에서 재생성할 수 있다. → 개발, 테스트, 배포 환경 간 일관성을..
반응형