DFS / BFS 알고리즘 DFS 와 BFS 알고리즘은 대표적인 그래프 탐색 알고리즘이다. 여기서 탐색이란 많은 양의 데이터 중에서 원하는 데이터를 찾는 과정을 의미한다. 이제 이 두 알고리즘의 특징을 알아보도록 하자. 깊이 우선 탐색, DFS(Depth - First Search) 깊이 우선 탐색(DFS)은 그래프의 시작 노드에서 출발하여 탐색할 한 쪽 분기를 정하여 최대 깊이까지 탐색을 마친 후 다른 쪽 분기로 이동하여 다시 탐색을 수행하는 알고리즘 이다. 깊이 우선 탐색(DFS)은 실제 구현 시 재귀함수를 이용하므로 스택 오버플로에 유의해야한다. 코드로 DFS 구현 예시 public static void DFS(int item){ if(!visited[item]){ visited[item] = tr..
SOLID 란? SOLID란 객체 지향 프로그래밍을 하면서 지켜야하는 5대 원칙으로 각각 SRP(단일 책임 원칙), OCP(개방-폐쇄 원칙), LSP(리스코프 치환 원칙), DIP(의존 역전 원칙), ISP(인터페이스 분리 원칙)의 앞글자를 따서 만들어졌다. SOLID 원칙을 철저히 지키면 시간이 지나도 변경이 용이하고, 유지보수와 확장이 쉬운 소프트웨어를 개발하는데 도움이 되는 것으로 알려져있다. 참고로 SOLID는 어떠한 특정 프로그래밍 언어 혹은 프레임워크를 위해 만든 원칙이 아니다. SOLID는 프레임워크도 라이브러리의 패턴도 아니며, 특정 기술에 국한되지 않는다. 그래서 TypeScript 또는 Java 와 같은 선호하는 프로그래밍 언어나 프레임워크에 원칙을 자유롭게 적용할 수도 있다. (왠만한..
오버로딩(Overloading) 이란? 자바의 한 클래스 내에 이미 사용하려는 이름과 같은 이름을 가진 메소드가 있더라도 매개변수의 개수 또는 타입이 다르면, 같은 이름을 사용해서 메소드를 정의할 수 있다. 오버로딩의 조건 메소드의 이름이 일치해야 함 메소드 매개변수의 개수 또는 타입이 달라야 함 (개수가 같다면 타입, 타입이 같다면 개수를 다르게 해야함) 메소드의 return 타입이 달라야 함 class Car{ int modelNum; String modelName; public int setModel(int modelNum){ this.modelNum = modelNum; return this.modelNum; } public String setModel(int modelNum, String mod..
JWT(JSON Web Token)란? 일반적으로 클라이언트와 서버 사이에서 통신할 때 권한을 위해 사용하는 토큰이다. 웹 상에서 정보를 Json형태로 주고 받기 위해 표준규약에 따라 생성한 암호화된 토큰으로 복잡하고 읽을 수 없는 string 형태로 저장되어있다. JWT 구조 JWT는 Header, Payload, Signature의 3 부분으로 이루어지며, Json 형태인 각 부분은 Base64Url로 인코딩 되어 표현된다. 또한 각각의 부분을 이어 주기 위해 . 구분자를 사용하여 구분한다. 추가로 Base64Url는 암호화된 문자열이 아니고, 같은 문자열에 대해 항상 같은 인코딩 문자열을 반환한다. 1️⃣ 헤더 (Header) 토큰의 헤더는 typ과 alg 두 가지 정보로 구성된다. alg는 헤더(..
Java 8 에 추가 된 내용 람다식(Lambda expressions) 함수형 인터페이스 (Functional Interface) 디폴트 메서드 (Default Method) JVM의 변화 병렬 배열 정렬(Parallel Array Sorting) 컬렉션을 위한 대용량 데이터 처리 ( 스트림 ) Optional Base64 인코딩과 디코딩을 위한 표준 API 새로운 날짜, 시간 API (Date & Time API) 이 중에서 bold 로 된 항목에 대해서 간략하게 정리하고자 한다. 1️⃣ Lambda expressions 람다는 함수를 하나의 식(expression)으로 표현한 것이다. 함수를 람다식으로 표현하면 메소드의 이름이 필요 없기 때문에, 람다식은 익명 함수(Anonymous Function..
- Total
- Today
- Yesterday
- java
- 코딩테스트공부
- 백준
- 주니어 개발자 취업 준비
- 프로그래머스
- 코딩테스트
- 자바공부
- 백엔드 개발자 취업 준비
- 알고리즘
- 기술 면접 준비
- 개발자 취준
- 취업준비
- 자바
- 백엔드 개발자
- 제로베이스 백준 장학금
- 알고리즘 공부
- 제로베이스 백엔드 스쿨
- 코테 준비
- 개발자 취업 준비
- 코테준비
- 취준
- 프로그래머스 자바
- 코테공부
- 프로그래머스 카카오
- 취업 준비
- 개발자 면접 준비
- 백엔드 개발자 기술 면접 준비
- 알고리즘공부
- 코딩테스트 공부
- 코딩테스트 준비
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |