일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 자바
- cs지식
- IT취준
- 원티드
- apm 소스설치
- 코딩
- 프로그래머스
- 백준 java
- IT개발자
- 개발공부
- 백준 자바
- 백엔드 개발자
- 개발자
- 백준
- 프리온보딩
- 프리온보딩 백엔드 챌린지
- IT취업
- 알고리즘풀이
- 백엔드개발자
- Java
- apm 수동설치
- 기술면접
- 코테
- IT공부
- 개발자취준
- 백엔드
- IT개발
- IT
- 코딩테스트
- 알고리즘
- Today
- Total
목록백엔드개발자 (13)
코이팅
1. OAuth2.0 1) OAuth2의 개념 OAuth2.0(Open Authorization 2.0, OAuth2)는 인증을 위한 개방형 표준 프로토콜입니다. 이 프로토콜에서는 Third-Party 프로그램에게 리소스 소유자를 대신해 리소스 서버에서 제공하는 자원에 대한 접근 권한을 위임하는 방식으로 작동됩니다. 구글, 페이스북 등 외부 소셜 계정을 기반으로 간편하게 인증하는 기능입니다. 기존의 인증방식과 달리 인증을 중개해주는 방식이라고 생각하시면 됩니다. 소셜 서비스에서 인증(Authentication)을 대신 해주지만 클라이언트 정보가 서버에 저장되는 것은 기존 인증 방식과 동일합니다. 즉, 서버에서 접근 권한 관리(Authorization)은 여전히 서버가 담당해야 할 부분이 됩니다. 그럼에도..
📝 Week 2-1 절차지향 (Procedural Programming) 🟡 정의 순차적인 처리가 중요한 프로그래밍 방식입니다. 물이 위에서 아래로 흐르는 것처럼 순차적인 처리가 중요시 되며 프로그램 전체가 유기적으로 연결되도록 만드는 프로그래밍 기법입니다. 🟡 특징 대표적인 예로 C언어가 있습니다. 컴퓨터와 작업 방식이 비슷합니다. 데이터 위주의 thinking을 합니다. 객체지향 언어를 사용하는 것에 비해 더 빨리 처리 되어 시간적으로 유리합니다. 🟡 장단점 [장점] - 컴퓨터의 처리구조와 유사하여 실행속도가 빠릅니다. [단점] - 유지보수가 어렵습니다. - 실행 순서가 정해져있으므로 코드의 순서가 바뀌면 동일한 결과를 보장하기 어렵습니다. - 디버깅이 어렵습니다. 리팩토링 (Refactoring) ..
📝 Week 1-2 Nest.js로 객체지향 이해해보기 🟡 Controllers controller는 client의 요청을 받고, 응답을 다시 client에게 반환합니다. 어플리케이션을 향한 요청을 받는 첫번째 스텝입니다. 외부세계로 부터 들어온 요청이 어느 곳으로 가야하는지 안내하는 역할입니다. 하나 이상의 route를 가지며 각각 다른 action을 수행합니다. import { Controller, Get } from '@nestjs/common'; // @Controller : 해당 클래스가 컨트롤러라는 것을 명시합니다. @Controller('cats') export class CatsController { // @Get, @Post, @Put, @Patch... : REST API 메소드 @Ge..
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 표기법은 일반적으로 입력 크기 측면에서 알고리즘의 시간 복잡도를의 상한을 표현하는 방법입니다. 알고리즘이 수행하는 작업 수에 대한 최악의 시나리오를 설명합니다. 불필요한 연산을 제거하여 알고리즘 분석을 쉽게 할 목적으로 사..