분류 전체보기
[Git]Git에서 해시 함수를 사용하는 이유
깃허브에서 커밋을 하다 보면 아래의 이미지와 같이 해시를 볼 수 있다. 이걸 왜 사용하는 걸까 궁금했다. 파일이 변경되었는지를 확인하기 위해 사용하는 것 같긴 한데, 단순히 파일 내용만을 비교하는 건 아닌 거 같았다. 그리고 내용만 비교할 거면 line by line으로 하면 되는데, 왜 해시 함수를 거치는지 궁금했다. 답은 리눅스 토발즈가 2007년에 구글에서 Git을 발표한 동영상(https://youtu.be/4XpnKHJAok8?t=3389)에서 찾을 수 있었다. 위 동영상의 내용은 stackoverflow(https://stackoverflow.com/questions/28792784/why-does-git-use-a-cryptographic-hash-function)에도 잘 정리되어 있는데, ..
[암호화]MD5, md5sum
MD5(Message-Digest algorithm 5) 128비트 암호화 해시 함수 단방향 암호화 프로그램이나 파일이 원본 그대로인지를 확인하는 무결사 검사 등에 사용 위와 같은 이유로 보안 용도의 사용은 권장되지 않지만, 고속 연산이 가능한 점과 임의 변경 패턴에 대해서는 충돌 가능성이 낮다는 점을 고려하여 네트워크로 전송된 파일의 무결성 확인 용도로는 여전히 사용되고 있다. 리눅스에서 파일을 MD5 해시 함수를 사용해서 암호화 할 때 'md5sum' 명령어를 사용한다. # 파일 만들기 md5sum > hash.md5 # MD5 확인 md5sum -c hash.md5
[Linux]디스크 관리 下 스왑 메모리
컴퓨터, 노트북 등 전자기기를 살 때 최소 8GB RAM은 사야된다던가, 게임을 좀 하려면 16GB RAM은 사야한다는 말은 아마 흔히들 들어봤을 말이다(5년 전에는 그랬는데 요즘은 32GB는 기본으로 사는 듯 하다 ㅎㅎ.. 세월 빠르다). 위의 이미지에서 확인할 수 있는 것 처럼 보통 노트북을 살 때 성능을 중요시하면 우선 CPU, 메모리, SSD을 확인한 뒤 용도에 따라 무게를, 취향에 따라 제조사와 운영체제를 고려한다. 1) 메모리가 중요한 이유 메모리는 시스템의 성능에 중요한 역할을 한다. 왜 중요할까? 프로그램이 실행되는 과정을 생각해보면 알 수 있다. 시스템에서 프로그램은 메모리에 올라간 후에 CPU에 의해 실행된다. 저장장치인 SSD나 HDD에 아무리 많은 프로그램이 저장되어있어도 메모리에 ..
[Linux]디스크 관리 中 파일시스템
2021.05.13 - [DevOps] - [Linux]디스크 관리 上 디스크 인식, 파티셔닝에서 fdisk, gdisk, parted를 이용해 파티션을 구성하는 방법을 다뤘다. 이제 디스크를 사용하기 위해서 파일 시스템을 생성하고 마운트 하는 과정이 남았다. * fdisk나 gdisk를 사용해서 파티셔닝을 하면 파일 시스템 생성이 필요하지만, parted를 사용하면 파일 시스템이 기본 ext2로 자동 생성된다. 즉, parted를 사용하면 파일 시스템 생성 과정이 필요없다. 1) 파일 시스템의 정의 파일 시스템이 뭐길래 생성하는 걸까? 분명 전공 수업에서 배운 적이 있는 것 같은데 '리눅스에서는 모든 것을 파일로 관리합니다.'라는 한마디만 어렴풋이 떠오른다. 일단 이 말에 의하면 '리눅스에서 저장장치를..
[Windows] Windows New Terminial에서 WSL 예쁘게 사용하기
윈도우즈에서 코딩을 하면서 가장 불편했던 건 터미널이다. 리눅스, 맥에 비해 커스터마이징 하기도 힘들고 예쁘지도 않아서 사용하기 싫었다. 하지만 역시 내가 몰랐던 것 뿐이지 해결책은 있었다. 1. Microsoft Store에서 Windows Terminal Preview 설치하기 뭔가 아이콘부터 예쁘다. 순정 상태도 예쁘다. 더날나위 없이 만족스럽다. 하지만 여기서 멈추면 안된다. code ~/.bashrc # vscode로 .bashrc 편집 위의 명령어로 vscode를 실행하고 export PS1="\w$ " export PS1="\W$ " export PS1="\u@\W $ " export PS1="[\t] \u@\h:\w\$ " 맨 아래에 PS1 설정을 해줬다. PS1은 bash의 프롬프트 모양..
습관 만들기
공부든 운동이든 시작할 때는 의욕에 가득 차 시작한다. 특히 시험 직전에 공부를 할 때는 '밤새서 책을 다 외워서 100점 받아야지!', '팔 굽혀 펴기 100번 해야지!'같은, 과도한 의욕에 일을 오히려 망치기도 한다. 가끔씩 성공하기도 한다지만, 몸과 정신이 지치게 된다. 우리는 오늘만 사는게 아니니까 앞으로 길게, 계속해야 하는 일은 마냥 추상적인 목표를 세운다기보다는 습관을 만드는 게 좋겠다는 생각을 했다. 의지보다 습관이 강하다는 말이 있다. 그만큼 습관이 무섭다는 것을 알 수 있다. 아무리 강한 의지로 무언가를 계획하고 실천하더라도 그것이 습관이 되기 전에 그만두는 경우가 많다. 이럴 경우 계획했던 것을 이루지 못했을 것이고 행동으로 옮겼더라도 원하는 만큼의 변화를 얻지 못했을 것이다. 그래서..
[파이썬/프로그래머스]여행경로
링크: https://programmers.co.kr/learn/courses/30/lessons/43164 코딩테스트 연습 - 여행경로 [["ICN", "SFO"], ["ICN", "ATL"], ["SFO", "ATL"], ["ATL", "ICN"], ["ATL","SFO"]] ["ICN", "ATL", "ICN", "SFO", "ATL", "SFO"] programmers.co.kr 문제: 주어진 항공권을 모두 이용하여 여행경로를 짜려고 합니다. 항상 "ICN" 공항에서 출발합니다. 항공권 정보가 담긴 2차원 배열 tickets가 매개변수로 주어질 때, 방문하는 공항 경로를 배열에 담아 return 하도록 solution 함수를 작성해주세요. 만일 가능한 경로가 2개 이상일 경우 알파벳 순서가 앞서는..
[파이썬/프로그래머스]단어 변환
링크: https://programmers.co.kr/learn/courses/30/lessons/43163 코딩테스트 연습 - 단어 변환 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 programmers.co.kr 문제: 두 개의 단어 begin, target과 단어의 집합 words가 매개변수로 주어질 때, 최소 몇 단계의 과정을 거쳐 begin을 target으로 변환할 수 있는지 return 하도록 solution 함수를 작성해주세요. [규칙] 1. 한 번에 한 개의 알파벳만 바꿀 수 있습니다. 2. words에 있는 ..
[MySQL]SQL 코딩 테스트 대비 문법 정리
1. HackerRank - Basic select -- #6 SELECT DISTINCT CITY FROM STATION WHERE ID%2 = 0 -- #7 SELECT COUNT(CITY) - COUNT(DISTINCT CITY) FROM STATION -- #8 SELECT MIN(LENGTH(CITY)) AND MAX(LENGTH(CITY)) FROM STATION ORDER BY DESC -- #11 SELECT DISTINCT(CITY) FROM STATION WHERE RIGHT(CITY, 1) IN ('a', 'e', 'i', 'o', 'u') -- #12 SELECT DISTINCT(CITY) FROM STATION WHERE (RIGHT(CITY, 1) IN ('a', 'e', 'i'..
[MySQL/프로그래머스] 헤비 유저가 소유한 장소
link: https://programmers.co.kr/learn/courses/30/lessons/77487 코딩테스트 연습 - 헤비 유저가 소유한 장소 PLACES 테이블은 공간 임대 서비스에 등록된 공간의 정보를 담은 테이블입니다. PLACES 테이블의 구조는 다음과 같으며 ID, NAME, HOST_ID는 각각 공간의 아이디, 이름, 공간을 소유한 유저의 아이디를 programmers.co.kr 문제: 이 서비스에서는 공간을 둘 이상 등록한 사람을 "헤비 유저"라고 부릅니다. 헤비 유저가 등록한 공간의 정보를 아이디 순으로 조회하는 SQL문을 작성해주세요. 코드: SELECT P1.* FROM PLACES P1 JOIN (SELECT HOST_ID FROM PLACES GROUP BY HOST_..
[MySQL/프로그래머스]우유와 요거트가 담긴 장바구니
link: https://programmers.co.kr/learn/courses/30/lessons/62284 코딩테스트 연습 - 우유와 요거트가 담긴 장바구니 CART_PRODUCTS 테이블은 장바구니에 담긴 상품 정보를 담은 테이블입니다. CART_PRODUCTS 테이블의 구조는 다음과 같으며, ID, CART_ID, NAME, PRICE는 각각 테이블의 아이디, 장바구니의 아이디, 상품 종류, 가 programmers.co.kr 문제: 데이터 분석 팀에서는 우유(Milk)와 요거트(Yogurt)를 동시에 구입한 장바구니가 있는지 알아보려 합니다. 우유와 요거트를 동시에 구입한 장바구니의 아이디를 조회하는 SQL 문을 작성해주세요. 이때 결과는 장바구니의 아이디 순으로 나와야 합니다. 방법 1: S..