본문 바로가기

Server, DevOps

(6)
palloc과 malloc의 차이점: 메모리 할당 구조 이해하기 들어가며Pintos 프로젝트의 4주간 여정이 마무리되었습니다. 흥미로운 부분도 많았지만, 모르는 것이 너무 많아 OS라는 깊은 바다에 빠져 허우적대는 기분이 들기도 했습니다. 그래서 4주 전으로 돌아가 다시 한 번 해보면 더 많은 것을 배울 수 있었을 텐데 하는 아쉬움도 남습니다. 지금이라도 배운 내용을 정리하며 완전히 내 것으로 만들기 위해, 이번 시간을 활용해 메모리 할당에 대해 글을 작성해보려 합니다. 특히, 처음 Virtual Memory 과제를 접하면서 malloc과 palloc의 개념이 혼동되었던 경험을 다루어 보겠습니다.  위의 함수는 page를 초기화하는 함수입니다. 처음 빨간 줄의 코드를 보았을 때, page는 palloc_get_page()으로 할당하는게 맞다고 생각했지만, malloc..
단방향 암호화와 키 파생 함수: 안전한 비밀번호 관리의 핵심 들어가며사실 지금까지 프론트엔드를 작업하면서 Https에 의존하며, 암호화에 대해 깊이 고민해본 적이 없었습니다. 그러나 이번에 정글에서 백엔드 부분도 개발을 맡게 되고, 처음으로 암호화에 대해 진지하게 고민을 하게 되었습니다. 이 글에서는 비밀번호 암호화에 적합한 방식, 사용가능한 라이브러리, 그리고 암호화가 이루어지는 원리에 대해 정리해보았습니다. 단방향 암호화비밀번호를 암호화 할 때는 단방향 암호화를 진행해야 합니다. 그런데 단방향 암호화는 어떤 뜻일까요?단방향 암호화는 데이터를 암호화할 때, 해당 데이터를 다시 복호화할 수 없는 방식의 암호화 기법입니다. 이는 일반적으로 해시 함수를 사용하여 이루어지며, 해시 함수는 입력 데이터를 고정된 크기의 해시 값으로 변환합니다. 이 변환 과정은 비가역적이며..
Python Nginx로 배포하고 Certbot으로 HTTPS 도메인까지 연결하기(+EC2) 들어가며Nginx로 파이썬을 배포하고 Certbot을 사용하여 Https 도메인 연결을 설정하는 설명하려 합니다. 정글에서 2박3일로 진행한 유사 해커톤 서비스😅를 배포했던 방법을 정리하는 글입니다. 파이썬 배포 및 AWS 콘솔을 활용하지 않은 Https 연결과 관련된 글이 없어 배포하는데 어려움을 겪었기에, 그런 분들을 위한 글이기도 하고, 저 스스로도 다시 하나 하나 뜯어보며 체화시키기 위한 개념 설명 및 적용 글입니다. NginxNginx란 무엇일까요? chatGPT를 통해 확인해보면 아래와 같이 나옵니다.Nginx는 웹 서버 소프트웨어로, HTTP 서버뿐만 아니라 리버스 프록시, 로드 밸런서, 메일 프록시 등의 역할을 할 수 있습니다. 높은 성능과 낮은 메모리 사용량을 자랑하며, 특히 정적 콘텐..
[Network] 5계층 Transport Layer(+TCP, UDP차이) 전세계에서 유일하게 특정지을 수 있는 컴퓨터 주소는 바로 IP이다. 그럼 그 안에서 프로그램을 특정지을 수 있는 번호는 무엇일까? 그것은 바로 PORT 번호이다. 참고로 이 둘을 합친 것을 Socket Address라고 한다. 그리고 Transport Layer에서의 주소는 포트번호로 쓰인다. 무슨 말인지 자세히 알아보자! 우리는 운영체제의 구멍(포트번호)을 통해서 그 프로그램과 대화를 시도한다. 하나의 컴퓨터 안에 여러 개의 소프트웨어가 있을 것이고, 여기서 운영체제는 어느 소프트웨어로 전송할지를 이 포트 번호(Transport Layer의 주소)를 보고 결정을 하게되는 것이다. TCP/UDP의 포트번호는 16비트로0~65,535안에 존재한다. 웹브라우저가 웹서버 접속할때 80번에 주로 접속하는데, 이..
[Network] Network Layer에 대한 깊은 이해하기(+IPv4, NAT, PAT, UDP, TCP) 저번 2계층에 이어 3계층 네트워크 레이어중에 가장 유명하고 인터넷의 근간이 되는 IP네트워크에 대해 알아보려한다. IP네트워크는 위처럼 패킷 단위로 전송된다. 1, 2, 3, 4의 순서로 패킷이 전송되지만 속도에 따라 도착하는 순서는 위처럼 달라질 수 있다. 이 순서를 맞춰주는 것이 TCP이고, UDP는 순서를 맞춰주지 않는다. TCP를 쓴다면 1,2,3,4로 도착할 것이고 UDP를 쓴다면 위의 그림과 같은 순서로 도착을 할 것이다. R들은 Router로서 특정 포트에서 받은 패킷을 다른 특정 포트에 전달한다. 라우터의 인터페이스란(inteface) 라우터 장치에서 줄이 꽂혀있는 포트를 뜻한다. 네트워크 계층에는 가장 기본이 되는 IP외에도 이를 도와주는 IGMP, ICMP, ARP 등이 있다. 게임을..
[Server] 2계층 MAC Layer (CSMA/CD, CSMA/CA 개념정리) OSI 2계층의 데이터링크는 LLC(Logical Link Control)와 MAC Layer(Media Access Control)로 나뉘게 된다. 그 중 MAC 계층의 네트워크 방식에 대해 알아보자. Channeliztion 프로토콜은 주파수를 이용한 복잡한 방법, 물리계층에 가까운 기법이다. Controlled-access 프로토콜은 소프트웨어적인 기법으로 예약방식 등이 있다. Random-access 프로토콜은 통상적으로 가장 많이 쓰이는 프로토콜이다. Random access 방식을 쉽게 설명해보자면 수많은 사람들이 동일 시간대에 인터넷을 쓴다. 하지만 동시에 그 많은 사람들의 데이터를 처리할 수 없기에 사람들이 데이터를 보낼 때마다 수학적으로 구간대를 주고 그 안에서 수가 배정되어 전송되는 통..