일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 백준 java
- 백엔드 개발자
- 알고리즘
- 자바
- Java
- IT취업
- 백준
- IT
- 코딩테스트
- apm 소스설치
- 개발자취준
- IT개발자
- IT개발
- 알고리즘풀이
- 개발공부
- 프리온보딩
- 코테
- 백엔드개발자
- apm 수동설치
- 원티드
- IT취준
- 프로그래머스
- 코딩
- 기술면접
- IT공부
- 개발자
- 백엔드
- 백준 자바
- 프리온보딩 백엔드 챌린지
- cs지식
- Today
- Total
목록CS (12)
코이팅
1. OAuth2.0 1) OAuth2의 개념 OAuth2.0(Open Authorization 2.0, OAuth2)는 인증을 위한 개방형 표준 프로토콜입니다. 이 프로토콜에서는 Third-Party 프로그램에게 리소스 소유자를 대신해 리소스 서버에서 제공하는 자원에 대한 접근 권한을 위임하는 방식으로 작동됩니다. 구글, 페이스북 등 외부 소셜 계정을 기반으로 간편하게 인증하는 기능입니다. 기존의 인증방식과 달리 인증을 중개해주는 방식이라고 생각하시면 됩니다. 소셜 서비스에서 인증(Authentication)을 대신 해주지만 클라이언트 정보가 서버에 저장되는 것은 기존 인증 방식과 동일합니다. 즉, 서버에서 접근 권한 관리(Authorization)은 여전히 서버가 담당해야 할 부분이 됩니다. 그럼에도..
1. 객체지향 프로그래밍의 5가지 설계 원칙, SOLID란? 1) SOLID의 개념 'SOLID'란 객체 지향 프로그래밍을 하면서 지켜야하는 5대 원칙으로 - SRP(단일 책임 원칙), - OCP(개방-폐쇄 원칙), - LSP(리스코프 치환 원칙), - ISP(인터페이스 분리 원칙), - DIP(의존 역전 원칙) 의 앞글자를 따서 만들어졌습니다. SOLID 원칙을 철저히 지키면 시간이 지나도 변경이 용이하고, 유지보수와 확장이 쉬운 소프트웨어를 개발하는데 도움이 되는 것으로 알려져있습니다. 응집도를 높이고, 결합도를 낮추는 원칙을 객체지향의 관점에서 재정립한 설계 원칙입니다. **[응집도와 결합도] - 응집도 : 모듈 내부 요소들의 연관 정도 (기능적 응집도 > 순차적 응집도 > 통신적 응집도 > 절차적..
1. REST란? 1) REST의 정의 REST란 'Representational State Transfer'의 약자입니다. 자원을 이름(자원의 표현)으로 구분하여 해당 자원의 상태(정보)를 주고 받는 모든 것을 의미합니다. 좀 더 구체적으로 이야기 하자면 1. HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고, 2. HTTP Method(POST, GET, PUT, DELETE)를 통해 3. 해당 자원에 대한 CRUD Operation을 적용하는 것을 의미합니다. ** [CRUD Operation] CRUD는 대부분의 컴퓨터 소프트웨어가 가지는 기본적인 데이터 처리 기능인 Create(생성), Read(읽기), Update(갱신), Delete..
1. Ajax란? 1) Ajax (Asynchronouse JavaScript XML) XMLHttpRequest 객체를 이용해서 웹 서버와 비동기로 통신하고, DOM을 이용해서 웹 페이지를 동적으로 바꿔주는 프로그래밍 기법입니다. 2) Ajax의 특징 페이지 새로고침 없이 특정 데이터만 reload 합니다. 서버로부터 데이터를 받고 작업을 수행합니다. 현재 XML을 사용하는 건 드물고 JSON을 사용합니다. **[Jquery와의 시너지] Ajax하면 Jquery에 대한 설명을 빼놓을 수 없습니다. 일반 Javascript만으로 Ajax를 하게되면 코딩량도 많아지고 브라우저별로 구현방법이 다른 단점이 있는데 jquery를 이용하면 더 적은 코딩량과 동일한 코딩방법으로 대부분의 브라우저에서 같은 동작을 할..
1. 스프링 배치(Spring Batch)란? 1) 스프링 배치(Spring Batch) 배치(Batch) : 일괄처리 사용자와 상호작용 없이 여러 개의 작업을 미리 정해진 순서에 따라 중단 없이 처리하는 것입니다. 스프링 배치(Spring Batch) 엔터프라이즈 시스템의 운영에 있어 대용량 일괄처리의 편의를 위해 설계된 가볍고 포괄적인 배치 프레임워크입니다. Spring의 특성을 그대로 가져왔기 때문에 DI, AOP, 서비스 추상화 등 Spring 프레임워크의 3대 요소를 모두 사용할 수 있습니다. Spring Batch는 로깅/추적, 트랜잭션 관리, 작업 처리 통계, 작업 재시작, 건너뛰기, 리소스 관리 등 대용량 레코드 처리에 필수적인 재사용 가능한 기능을 제공합니다. 또, 최적화 및 파티셔닝 기..
1. 시간복잡도(Time Complexity)란? [시간복잡도] 시간복잡도는 알고리즘을 수행하기 위해 프로세스가 수행해야하는 연산을 수치화 한 것입니다. 즉, 알고리즘의 성능을 설명하는 것입니다. 알고리즘의 로직을 코드로 구현할 때 시간복잡도를 고려한다는 것은 '입력값의 변화에 따라 연산을 실행할 때, 연산 횟수에 비해 시간이 얼마만큼 걸리는가?'를 뜻합니다. 시간복잡도는 주로 'Big-O 표기법'을 사용해 나타냅니다. 2. Big-O 표기법 [시간 복잡도를 표기하는 방법] Big-O 표기법은 일반적으로 입력 크기 측면에서 알고리즘의 시간 복잡도를의 상한을 표현하는 방법입니다. 알고리즘이 수행하는 작업 수에 대한 최악의 시나리오를 설명합니다. 불필요한 연산을 제거하여 알고리즘 분석을 쉽게 할 목적으로 사..
1. JWT(Json Web Token)란? JWT는 Json Web Token의 약자로 일반적으로 클라이언트와 서버 사이에서 통신할 때 권한을 위해 사용하는 토큰입니다. JWT는 웹표준(RFC 7519)으로서 두 개체에서 JSON 객체를 사용하여 가볍고 자가수용적인 방식으로 정보를 안전성 있게 전달해줍니다. 웹 상에서 정보를 Json 형태로 주고 받기 위해 표준규약에 따라 생성한 암호화된 토큰으로 복잡하고 읽을 수 없는 String 형태로 저장되어 있습니다. **[토큰 기반 인증방식] 토큰 기반 인증방식은 사용자의 인증이 완료된 이후에 토큰을 발급합니다. 클라이언트쪽에서 전달받은 토큰을 저장해두고 서버에 요청할 때마다 해당 토큰을 서버에 함께 전달합니다. 그 후 서버는 토큰을 검증하고 응답하는 방식으로..
1. Spring Security란? [Spring Security란 ?] Spring Security는 Spring 기반의 애플리케이션의 보안(인증, 권한, 인가 등)을 담당하는 스프링 하위 프레임워크입니다. 이 프레임워크를 사용하면 보안처리를 자체적으로 구현하지 않아도 필요한 기능을 쉽게 구현할 수있습니다. 즉, 보안과 관련해서 체계적으로 많은 옵션을 제공해주기 때문에 일일이 보안관련 로직을 작성하지 않아도 됩니다. Spring Security는 '인증'과 '권한'에 대한 부분을 Filter 흐름에 따라 처리하고 있습니다. **[인증(Authentication)] 인증은 해당 사용자가 본인이 맞는지 확인하는 절차입니다. 유저가 누구인지 확인하는 것, 회원가입과 로그인을 하는 것을 말합니다. **[인가..