일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- dbms
- DB
- 자료구조
- 가상컴퓨팅
- 99클럽
- 개발자취업
- JPA
- Java
- python
- Algorithm
- 항해99
- 자바의정석
- 암호학
- BFS
- javascript
- js
- 크루스칼
- 코딩테스트준비
- 생성자
- 알고리즘
- jsp
- generic class
- til
- sql
- 공개키 암호화
- 코딩테스트
- spring
- Queue
- 코테
- dfs
- Today
- Total
목록분류 전체보기 (137)
PLOD
현재 우리나라의 삼성 , 현대, LG 같은 대기업들과 네이버 , 라인, 카카오 같은 it 서비스 기업들 , 수 많은 SI 기업들은 대부분 java 기반의 sping framework를 사용하고 있다. 당연히 개발자로 취업을 희망하는 사람들은 (나 같은..) spring이 시장 점유율이 높다는 이유로 사용하고 있다. 하지만 근본적으로 spring을 사용하는 이유는 뭘까? 프레임워크는 말그대로 '뼈대나 근간을 이루는 코드들의 묶음' 이라고 할 수 있다. 중요한 점은 이뼈대가 왜 필요한 지이다. 개발자는 각 개개인의 능력 차이가 큰 직종이고 그렇기 때문에 개발자 구성에 따라 프로젝트 결과 역시 큰 차이를 낳는다. 이러한 차이를 극복하기 위해 나온것이 framework이다. 프레임워크를 이용한다는 의미는 프로..
비밀키 암호화 기법은 대칭키 암호화 기법, 단일키 암호화 기법이라고도 한다. 동일한 키로 데이터를 암호화하고 복호화한다. 암호화하는 키와 복호화하는 키가 같기 때문에 key가 노출되면 누구나 암복호화가 가능하기 때문에 비밀성을 유지하는 것이 중요하다. 대칭키 암호화를 사용하는 기법 중 가장 유명한 암호화 기법은 DES(Data Encryption Standard) 기법이다. DES(64ibt) 1) IP(Initial Permutation, 초기 전치) 시행 2) 초기 전치 후 총 64비트 문을 상위 32비트(L0, 왼쪽 비트), 하위 32bit(R0, 오른쪽 비트)로 분할 3) 오른쪽 32bit(R0)와 라운드 키(K)와 함께 f 함수 연산을 하고 왼쪽 32bit(L0)와 XOR 연산 수행 . 이러한 ..
동적계획법컴퓨터는 굉장히 빠른 연산 속도를 장점으로 갖고 있기 때문에 인간이 풀기엔 오래걸리는 문제라도 컴퓨터로는 금방 답을 얻을 수 있다. 이 특징이 가장 두드러지는 방법이 완전탐색이다. 완전탐색은 범위가 작을 때는 시간,공간적으로는 괜찮았지만 범위가 10000000000 이상이라면 코딩테스트에서 시간 , 메모리 초과가 발생한다. 그래서 더 효율적인 알고리즘을 사용해서 풀어야 하는데 그 방법은 동적 계획법이다.예를 들면 , 6번째 피보나치 수를 구하려면 5번째와 4번째가 필요하다 5번째를 구하기 위해서는 4번째와 3번째가 필요하고... 이렇게 계속 반복하다 보면 0번째와 1번째 까지 오게 된다 . 이를 가지고 2번째 피보나치 수를 구할 수 있고 연쇄적으로 6번째 피보나치 수를 구할 수 있다. 피보나치..
순차 탐색(sequential Search)선형 탐색이라고도 불린다. 리스트 안에 있는 특정한 데이터를 찾기 위해 앞에서부터 데이터를 하나씩 차례대로 확인하는 방법이다. 보통 정렬되지 않은 리스트에서 데이터를 찾아야 할 때 사용한다 .적용리스트가 아무리 많아도 시간만 충분하다면 항상 원하는 원소를 찾을 수 있다는 장점이 있다. 순차 탐색은 이름처럼 순차로 데이터를 탐색한다는 의미이다. 정렬되지 않은 데이터나 작은 데이터 셋을 탐색해야 할 때 간단히 구현 가능하다.시간복잡도는 O(n)이다.ex) 순차탐색으로 이름 리스트에서 원하는 이름의 순서 찾기#sequential_searchdef sequential_search(n,target,array) : for i in range(n) : if array..
정렬(sorting)이란 데이터를 특정한 기준에 따라서 순서대로 나열하는 것을 말한다. 프로그램에서 데이터를 가공할 때 오름차순이나 내림차순 등으로 대부분 어떤 식으로든 정렬해서 사용하는 경우가 많기에 정렬 알고리즘은 프로그램을 작성할 때 가장 많이 사용되는 알고리즘 중 하나다. 정렬 알고리즘으로 데이터를 정렬하면 이진탐색(binary search)가 가능해진다. 파이썬에서 버블정렬, 선택정렬 알고리즘을 사용하는 것보다 sort()함수와 sorted()함수가 O(NlogN)의 시간 복잡도를 보장해주기 때문에 더 효율적이지만, 간혹 수기로 코딩테스트를 보거나 직접 정렬 알고리즘을 아는지 물어보는 경우가 있기 때문에 알고 있는 것이 좋다1. 선택 정렬(selection sorting)컴퓨터가 데이터를 정렬할..
자바 언어의 특징 1. 운영체제에 독립적이다. JVM(java virtual machine)이 있기 때문에 JVM 이 자바 응용프로그램으로부터 전달받은 명령을 해당 운영체제가 이해할 수 있도록 변환하여 전달 2. 객체지향언어이다. Ⅰ.코드의 재사용성이 높다 Ⅱ. 코드의 관리가 용이하다 Ⅲ. 신뢰성 높은 프로그래임을 가능하게 한다) Java는 캡슐화, 상속, 추상화, 다형성이 잘 적용되어 있다. 3. 비교적 배우기 쉽다 4. 자동 메모리 관리 garbage collector가 자동적으로 메모리를 관리해주기 때문에 프로그래머가 따로 메모리를 관리해줄 필요가 없다 5. 네트워크 분산처리를 지원한다. 6. multi-thread를 지원한다. 7. dynamic loading을 지원한다. 자바 언어의 특징 변수(..