일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 토픽모델링
- dataframe
- ELASTIC
- git bash
- pandas
- pip install mariadb
- dead lock
- rest api
- Pythonic
- 나무자르기
- jvm.py
- KONLPY
- bulk post
- 파이썬
- MariaDB
- 완주하지못한선수
- bs4
- ChromeDriverManager
- ShallowCopy
- Jpype
- Python.h
- 프로그래머스
- elastic search
- Java
- js
- gensim
- centos8
- tweepy
- pyLDAvis
- 백준
- Today
- Total
목록전체 글 (39)
부리부리부리

해싱이란? 해싱은 데이터를 고정된 크기의 해시 값으로 변환하는 과정을 말한다. 키에 산술적인 연산을 적용하여 항목이 저장되어 있는 테이블의 주소를 계산하여 항목에 접근한다. 이 때, 산술적인 연산을 hash function이라고 한다. 오늘은 Java의 클래스 중 해싱을 사용한 자료구조에 대해 다뤄보기로 한다. HashTable, HashMap HashTable 정의: HashTable은 키와 값이 연관된 데이터를 저장하는데 사용되는 동기화된(synchronized) 컬렉션 클래스이다. 특징: 동기화: HashTable은 스레드 안전(thread-safe)이다. 여러 스레드가 동시에 HashTable을 사용할 수 있으며, 일관된 상태를 유지한다. null 값을 허용하지 않음: HashTable은 키나 값..

Index란? 데이터베이스의 인덱스란, 추가적인 저장 공간을 사용해서 테이블 검색 속도를 향상시키기 위한 자료구조이다. 인덱스는 일반적으로 SELECT 쿼리의 WHERE 절에 사용될 컬럼에 대한 조회 성능을 개선할 때 사용된다. 사용 이유? 인덱스를 사용하지 않으면, 데이터를 탐색할 때 풀 테이블 스캔(Full Table Scan)이 발생한다. 사용자가 원하는 데이터를 찾기 위해 테이블에 존재하는 모든 행을 읽어내는 방법이다. 풀 테이블 스캔은 전체 데이터를 탐색하므로, 디스크에서 데이터를 읽어 메모리로 적재하는 IO 비용이 많이 발생하는 가장 느린 테이블 스캔 방식이다. 풀 테이블 스캔은 테이블에 인덱스가 존재하지 않거나, 인덱스가 존재한다고 하더라도 데이터베이스의 옵티마이저(Optimizer)가 인덱..

HTTP HTTP는 HyperText Tranfer Protocol로 WWW상에서 정보를 주고 받는 프로토콜이다.클라이언트인 웹브라우저가 서버에 HTTP를 통해 웹페이지나 이미지 정보를 요청하면 서버는 이 요청에 응답하여 요구하는 정보를 제공하게 된다.결국,HTTP 는웹브라우저(Client)와 서버(Server)간의 웹페이지같은 자원을 주고 받을 때 쓰는 통신 규약이다. http는 텍스트 교환이다. html페이지도 텍스트다. 바이너리 데이터로 되어있는 것도 아니고 단순 텍스트를 주고 받기 때문에 누군가 네트워크에서 신호를 가로채어 본다면 내용이 노출된다.이런 보안상의 문제를 해결해주는 프로토콜이 HTTPS다. HTTPS HTTPS는 인터넷 상에서 정보를 암호화하는 SSL(Secure Socket Laye..

개요 OSI 모델(OSI 7 Layer)와 TCP/IP 모델은 네트워크에서 발생하는 통신 과정을 계층으로 나누어 놓은 모델이다. 통신 흐름을 한 눈에 볼 수 있고, 특정 계층에 이상이 생겼을 때, 시스템 전체를 점검하지 않고 해당 계층만 점검하면 되기 때문에 유지 보수에도 효과적이다. 현대 인터넷은 OSI 모델이 아니라 TCP/IP 모델을 따르고 있다. OSI 모델이 TCP/IP 모델보다 늦게 나오기도 했고, 시장 점유 싸움에서 졌기 때문이기도 하다. 하지만 OSI 모델은 계층을 세부적으로 설명하고 있다는 점에서 Reference 용도로 많이 쓰인다. TCP/IP 모델의 경우, 기존에는 4 Layer였지만 최근에는 5 Layer로 업데이트 되었다고 한다. OSI 7 Layer 응용 계층 (Applicat..

스케줄러(Scheduler) 한정적인 메모리를 여러 프로세스가 효율적으로 사용할 수 있도록 다음 실행 시간에 실행할 수 있는 프로세스 중에 하나를 선택하는 역할 스케쥴링: 여러 프로세스가 있고, 이 프로세스들이 자원(CPU 등)을 동시에 요구하는데 자원은 제한되어 있다. 그럴 때 제한된 자원들을 어떻게(순서를 할당하는 등) 나눠줄 것인지에 대한 정책을 말한다. Scheduling Queues 프로세스를 관리하는 큐 (1) Job Queue(batch queue) 시스템 안의 모든 프로세스의 집합 (2) Ready Queue ready 상태의 메인메모리 안에 상주하는 모든 프로세스의 집합 (3) Device Queue I/O 장치 사용을 대기하는 프로세스들의 집합 스케쥴러 분류 (1) 장기 스케줄러(Lon..

인증과 인가 인증(Authentication) : 해당 사용자가 본인이 맞는지 확인하는 과정 인가(Authroization) : 해당 사용자가 요청하는 자원을 실행할 수 있는 권한이 있는가를 확인하는 과정 Spring Security는 기본적으로 인증 절차를 거친 후에 인가 절차를 진행하며, 인가 과정에서 해당 리소스에 접근 권한이 있는지 확인하게 된다. Spring Security란? Spring Security는 강력하고 커스터마이징이 가능한 인증 및 액세스 제어 프레임워크이다. Spring 기반 응용 프로그램을 보호하기 위한 de-facto standard(사실상 표준)이다. Spring Security는 자바 애플리케이션에 인증과 인가를 제공하는 것에 초점이 맞춰진 프레임워크이다. Spring S..

개요 AOP란 Aspect Oriented Programming의 약자로, 관점 지향 프로그래밍이란 의미이다. 횡단 관심사(Cross-Cutting Concern)의 분리를 허용함으로써 모듈성을 증가시키는 것이 목적인 프로그래밍 패러다임이다. 여러 객체에 공통으로 적용할 수 있는 기능을 분리해서 개발자는 반복 작업을 줄이고 핵심 기능 개발에만 집중할 수 있다. AOP 자체는 패러다임이지만, 스프링에서 AOP패러다임을 기술적으로 구현해서 제공하기 때문에 기능으로 불리기도 한다. 스프링에서 사용되는 Filter, Interceptor, AOP에 대해 알아보고 전체적인 흐름을 짚어보려고 한다. Filter Filter는 요청과 응답을 거른뒤 정제하는 역할을 한다. Spring에서의 Filter는 Servlet..

Deadlock이란? 교착 상태(膠着狀態) 또는 데드락은 두 개 이상의 작업이 서로 상대방의 작업이 끝나기 만을 기다리고 있기 때문에 결과적으로 아무것도 완료되지 못하는 상태이다. 예를 들어 하나의 사다리가 있고, 두 명의 사람이 각각 사다리의 위쪽과 아래쪽에 있다고 가정한다. 이때 아래에 있는 사람은 위로 올라 가려고 하고, 위에 있는 사람은 아래로 내려오려고 한다면, 두 사람은 서로 상대방이 사다리에서 비켜줄 때까지 하염없이 기다리고 있을 것이고 결과적으로 아무도 사다리를 내려오거나 올라가지 못하게 되듯이, 전산학에서 교착 상태란 다중 프로그래밍 환경에서 흔히 발생할 수 있는 문제이다. 이 문제를 해결하는 일반적인 방법은 아직 없는 상태이다. (위키백과) Deadlock의 발생 이유와 조건 Deadl..

개요 RDBMS 관계형 데이터베이스(關係形 Database, Relational Database) 는 키(key)와 값(value)들의 간단한 관계를 테이블화 시킨 매우 간단한 원칙의 전산정보 데이터베이스이다. 1970년 에드거 F.커드 제안한 데이터 관계형 모델에 기초하는 디지털 데이터베이스이다. (출처 : 위키백과) RDBMS의 대표적인 종류로 너무나도 익숙한 MySQL이 있다. Spring 프로젝트를 진행하면서 RDBMS와 통신하기 위해 JDBC API를 사용했다. JDBC JDBC(Java Database Connectivity)는 자바에서 데이터베이스에 접속할 수 있도록 하는 자바 API다. JDBC는 데이터베이스에서 자료를 쿼리하거나 업데이트하는 방법을 제공한다. (출처 : 위키백과) JDBC..

쓰레드를 사용하는 이유 프로세스의 한계 과거에는 프로그램을 실행할 때 프로세스 하나만을 사용했었다고 한다. 기술이 발전됨에 따라 프로그램이 복잡해졌고, 프로세스 하나만으로 처리하기에는 무리가 있었다. 여러 개의 프로세스를 사용하자니, 각 프로세스는 독립적인 메모리 공간을 할당받기 때문에 메모리 중복 사용 문제가 발생했다. 이러한 문제를 해결하기 위해 쓰레드가 탄생하였다. 쓰레드란? 프로세스 내부에서 실행하는 작업의 단위이다. 하나의 프로세스는 일반적으로 하나의 쓰레드(Main Thread)를 가지고 있지만, 여러 개의 쓰레드가 존재할 수 있고 이를 멀티 쓰레드(Multi Thread)라고 한다. Thread 의 장단점 장점 Thread는 Stack을 제외한 하나의 프로세스 내의 자원(Code, Data,..