일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 웹개발
- 운영체제
- 스프링MVC
- OS
- 면접
- db
- 브루트 포스
- 쿼리dsl
- Bean Validation
- 프로그래머스
- 코테
- 스프링 MVC
- 백준
- 정처기
- Java
- 자바의 정석
- programmers
- 객체지향프로그래밍
- 자바
- JPA
- 네트워크
- 반복문
- 스프링
- 스파르타코딩
- 코딩테스트
- 자료구조
- ModelAttribute
- 메서드
- 알고리즘
- 검증
- Today
- Total
목록전체 글 (106)
개발일지
목차 브루트포스 완전탐색 알고리즘. 즉, 가능한 모든 경우의 수를 모두 탐색하면서 요구조건에 충족되는 결과만을 가져온다. 알고리즘 설계의 가장 기본적인 접근 방법은 해가 존재할 것으로 예상되는 모든 영역을 전체 탐색하는 방법이다. 장점 알고리즘을 설계하고 구현하기 매우 쉽다. 복잡한 알고리즘 없이 빠르게 구현할 수 있다. 단점 알고리즘의 실행 시간이 매우 오래 걸린다. 메모리 효율면에서 매우 비효율적이다. 브루트포스 종류 ✔️선형 구조 : 순차 탐색 ✔️비선형 구조 : BFS(넓이 우선 탐색), DFS(깊이 우선 탐색) (1) 선형 구조 : 하나의 자료 뒤에 하나의 자료가 존재하는 것으로, 앞 뒤의 관계가 1:1의 선형관계를 말한다. ex) 선형 구조 : 배열, 리스트, 스택, 큐 / 탐색 방법 : 순차..
목차 1️⃣ 변수 선언하기 값 변경 할당을 안할 경우(선언만 할 경우) var 가능 undefined let 가능 undefined const 불가능 에러 2️⃣ 데이터 타입 백틱 : 백틱으로 시작하면, 입력을 한 그대로 출력이 되기에 이스케이프 문자를 사용하지 않아도 됨 undefined : 사용자가 직접 값을 초기화하지 않았을 때 지정되는 값(undefined로 값 초기화는 지양) null : undefined와 마찬가지고 값이 없다는 뜻이나, JS에서는 개발자가 명시적으로 없는 값을 초기화할 때 사용 Symbol : 유일무이한 값을 생성할 때 사용 const symbol1 = Symbol('1'); const symbol2 = Symbol('1'); console.log(symbol1 === sym..
목차 💡 정적타입과 동적타입 자바스크립트만을 사용했다면, 변수와 값을 다룰 때 타입은 고려하지 않고 코드를 작성했다. 그러나, 자바스크립트에도 분명히 타입이 존재한다. 다만 개발자가 컴파일 이전에 타입을 직접 정의해줄 필요가 없었을 뿐이다. 타입을 결정하는 시점에 따라 타입을 정적 타입과 동적 타입으로 분류할 수 있다. 타입 결정 시기 설명 정적 타입 컴파일타임 코드 수준에서 개발자가 타입 명시 ex)C, 자바, 타입스크립트 동적타입 런타임 프로그램을 실행할 때 타입 에러 발견 ex)파이썬, 자바스크립트 💡 구조적 타이핑, 구조적 서브 타이핑 ✅ 구조적 타이핑 타입을 사용하는 여러 프로그래밍 언어에서 값이나 객체는 하나의 구체적인 타입을 가지고 있다. 타입스크립트는 구조로 타입을 구분한다. 타입스크립트의..

MST는 간선에 가중치를 고려하여, 최소 비용의 스패닝 트리를 선택하는 것이다. [조건] 본래의 그래프의 모든 노드를 포함한다. 간선의 가중치의 합이 최소여야 한다. 모든 노드가 서로 연결되어 있다. 트리의 속성을 만족한다. 즉, 사이클이 존재하지 않는다. *사이클 : 시작 노드에서 출발해 다른 노드를 거쳐 다시 시작 노드로 돌아올 수 있는 것을 뜻한다 ✅ 크루스칼 알고리즘 최소 비용 신장 트리를 찾는 알고리즘으로, 가장 적은 비용으로 모든 노드를 연결하기 위해 사용하는 알고리즘이다. 최소 스패닝 트리를 찾음으로써 간선의 가중치의 합이 최솟값으로 되도록 하는 알고리즘이다. 동작원리 모든 간선들을 가중치를 기준으로 오름차순으로 정렬한다. 가중치가 가장 적은 간선을 선택한다. 선택한 간선이 연결하려는 2개의..
목차 💡 직렬화 자바 시스템 내부에서 사용되는 객체 또는 데이터를 외부의 자바 시스템에도 사용할 수 있도록 바이트 형태로 데이터 변환하는 기술 각 PC의 OS마다 서로 다른 가상 메모리 주소 공간을 갖기 때문에, Reference Type의 데이터들은 인스턴스를 전달할 수 없다. 이런 문제를 해결하기 위해선 주소값이 아닌, Byte 형태로 직렬화된 객체 데이터를 전달해야 한다. 직렬화된 데이터들은 모두 Primitive Type(기본형)이 되고, 이는 파일 저장이나 네트워크 전송 시 파싱이 가능한 유의미한 데이터가 된다. 따라서 전송 및 저장이 가능 데이터로 만들어 주는 것이 바로 직렬화라고 할 수 있다. 💡 직렬화 조건 자바에서는 간단히 java.io.Serializable 인터페이스 구현으로 직렬화/..