본문 바로가기

전체 글

(424)
HTTPS 에 관하여.. HTTPS 에 관하여.. HTTPS 란? IP(3계층) 위에 TCP(4계층) 위에 SSL/TSL(5계층) 위에 HTTP(6계층) 를 사용하는데 SSL 로 암호화를 해서 보안성을 높였다. 대칭키를 사용하는데, 이 대칭키를 교환하기 위해서 비대칭키를 사용하여 보안을 유지한다. 과정 RSA 등의 비대칭 암호화 방법을 이용해서 서버에서 개인키(private)/공용키(public) 을 만들어둔다. 서버의 개인키를 인증기관을 통해 인증기관의 공용키로 감싸 인증서를 받아둔다. 클라이언트가 접속 시, 인증서를 보내주고 클라이언트는 인증기관의 인증서를 확인하면서 서버의 공용키를 꺼낸다. 곧바로 서버의 비대칭키를 이용하여 데이터를 암복호화 하여 사용할 수도 있을 것 같으나, 성능 이슈로 대칭키를 사용한다. 클라이언트에서 ..
기계학습 개념 정리 기계학습 데이터 정규화 (Normalization) 값의 범위가 크게 다른 특징들을 입력 변수로 사용할 경우 -> 적절한 학습 안될 수 있음 각각의 특징들이 갖는 값들의 범위를 적당한 규모로 변경하는 작업 평균제곱오차 오차 확인을 위함 데이터 표준화 (Standardization) 데이터를 정제할 때 평균과 분산을 이용해서 데이터 분포를 0으로 맞춤 군집화 k-nn(Classification, 지도) k-means(Clustering, 비지도) k-NN 알고리즘 기존 라벨링된 데이터를 기준으로 근접 k 개 확인 후 다수결로 결정 동률의 경우에는 거리로 확정 장점: 단순하고 직관적임, 준비 시간이 필요없음 단점: 모든 데이터에 대한 정보 필요, 많은 메모리와 계산시간 필요함 표집편향 (Sampling bi..
[LeetCode] 1. TwoSum + 테스트케이스 간만에 재미로 다시 푸니까 새롭기도 하고 배우는 것도 있고 좋았다. 일단 테스트케이스 import static org.assertj.core.api.Assertions.assertThat; import org.junit.jupiter.api.Test; class LC_00001_TwoSumTest { @Test void twoSumTest1() { LC_00001_TwoSum ts = new LC_00001_TwoSum(); int[] result = ts.twoSum(new int[]{2,7,11,15}, 9); assertThat(result).containsExactly(0,1); } @Test void twoSumTest2() { LC_00001_TwoSum ts = new LC_00001_Two..
[Codility] Chapter 9. Maximum slice problem, 최대 구간 문제 Reference: https://codility.com/media/train/7-MaxSlice.pdf 코딜리티 알고리즘 학습 pdf 중에서 나중에 써먹을 만한 것 최대 슬라이싱과 관련된 문제를 정의해 본다. n 개의 정수 배열이 주어지고, 가장 큰 합을 갖는 구간을 찾는 일이다. 더 정확히는, 두개의 인덱스 p, q 를 찾는데, [p]~ [q] 까지의 합이 최대값인 것이다. 예를 들어, p = 2, q = 5 가 최대 슬라이스 구간의 합을 찾은 것이다. 단순하게 O(n^3) 시간복잡도를 갖는 풀이를 생각 해볼 수 있다. 1. n개의 정수 배열 입력받는다. 2. 앞쪽 인덱스 p 는 0~ n 반복한다. 2.1. 뒤쪽 인덱스 q 는 p~ n 반복한다. -> 여기까지의 반복이 모든 경우의 슬라이싱 구간을 만..
DI 와 IoC 에 대한 개념과 스프링 https://github.com/itdar/TIL/blob/main/books/Toby_Spring3.1_vol.1.md 책의 2회독째 3ch 부근에서 확 와닿게 정리되는 문장을 보아서 그냥 줄줄 써본다. 전체 정리를 먼저 해본다면, IoC 는 Inversion of Control, 제어의 역전 이라는 뜻을 갖는다. IoC 컨테이너는 그 기능을 하는 것이고, 이는 객체지향적인 코딩을 하는데에 불편한? 필요한? 것들을 없애주고 제공해준다. 이 때, IoC 의 기반이 되는 것이 DI 이다. DI 는 Dependency Injection, 의존관계 주입인데 이를 통해서 IoC 가 구현 될 수 있는 것이다. - IoC 가 뭘 제어한다는 것인가? 객체의 생성과, 생성한 객체 간의 의존관계 설정에 대한 것을 제어..
Docker 이용해서 MySQL 설치 후 접속 예제 스프링부트랑 마이바티스 연결해서 테스트 할 일이 있어서 docker compose + mysql 연결해봄 m1 실리콘칩 맥북 기준 도커에서 mysql:latest 버전 이미지 다운로드 docker pull --platform linux/amd64 mysql ## 보통 피씨에서는 # docker pull mysql docker-compose 파일 구성 파일명: docker-compose-mysql-8.yml (?) version: '3.1' services: db: image: mysql container_name: testmysql ports: - "3306:3306" command: # 인증 플러그인 암호화방식 변경 - --default-authentication-plugin=mysql_native_p..
RabbitMQ 정리와 실행 예제 RabbitMQ 간단 정리 https://github.com/itdar/TIL/blob/main/infra/rabbitmq.md AMQP 란? 배경 목적 특징 구성 그래서 Rabbit MQ 란? RabbitMQ vs Kafka RabbitMQ Kafka RabbitMQ 실행 샘플 Reference AMQP 란? Advanced Message Queuing Protocol. 위키에 따르면, 메시지 지향 미들웨어를 위한 개방형 표준 응용계층 프로토콜 배경 기존 MQ 프로토콜들은 서로 다른 플랫폼 간의 메시지 교환을 위해서는 별도 작업 추가 (속도 저하), 또는 플랫폼 통일 등이 필요했음 목적 AMQP 는 서로 다른 시스템간에 (비용/기술/시간적인 측면에서) 최대한 효율적인 방법으로 메시지를 교환하기 위해 나..
Linux tar 압축, 압축 풀기 용량 압축보다는 그냥 디렉토리와 파일을 하나로 묶고 싶다.1. tar로 압축 하기 tar -cvf ${압축할 파일이름}.tar ${압축할 폴더이름} --exclude=${제외할 파일이름} 압축할 파일 이름을 제외해준다. e.g. tar -cvf ./temp.tar /etc --exclude=./temp.tar2. tar 압축 풀기 tar -xvf ${압축해제 할 파일이름}.tar -C ${압축해제 할 경로}e.g. tar -xvf ./temp.tar -C /home/user 묶으면서 용량까지 압축하고 싶다. 1. tar.gz 로 압축 하기 tar -zcvf ${압축할 파일이름}.tar ${압축할 폴더이름} --exclude=${제외할 파일이름} 압축할 파일 이름을 제외해준다. e.g. tar -zcvf ..