![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FXsZmd%2Fbtr0RQXWnaa%2FWF3ltfjcpouMsfz1TCIJj1%2Fimg.png)
[Spring Intro] Section 03. 회원 관리 예제 - 백엔드 개발 강의: 김영한의 스프링 입문 https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9E%85%EB%AC%B8-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8/ # 비지니스 요구사항 정리 1. 비지니스 요구사항 데이터: 회원 ID, 이름 기능: 회원 등록, 조회 아직 데이터 저장소가 선정되지 않음(가상의 시나리오) 즉, 어떤 데이터베이스를 사용할지는 정하지 않았다고 가정한다 2. 일반적인 웹 애플리케이션 계층 구조 컨트롤러: 웹 MVC의 컨트롤러 역할 서비스: 핵심 비지니스 로직 구현 ex. 회원은 중복가입을 할 수 없다 리포지토리:..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3zQEa%2Fbtr0NN0vIea%2FJki4gtEGARGEZt2PCFSKC0%2Fimg.png)
[Spring Intro] Section 02. 스프링 웹 개발 기초 강의: 김영한의 스프링 입문 https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9E%85%EB%AC%B8-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8/ # 스프링 웹 개발 기초 정적 컨텐츠: 파일을 그대로 웹브라우저에서 내려주는 것이다 MVC와 템플릿 엔진: 서버에서 HTML을 프로그래밍해 동적으로 내려주는 것이다 API: JSON이라는 데이터 구조 포맷으로 클라이언틍게 데이터를 전달하는 방식이며, 서버끼리의 데이터 통신에도 사용한다 # 정적 컨텐츠 1. 정적 컨텐츠 스프링 부트 정적 컨텐츠 기능: https://docs.spring...
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb1FOaC%2FbtrZAgJSCCy%2FHNDxJobLTLaKkeOMzaLEr0%2Fimg.png)
[Spring Intro] Section 01. 프로젝트 환경설정 강의: 김영한의 스프링 입문 https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9E%85%EB%AC%B8-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8/ # 사전 환경 설정 필자는 맥북 M1 pro를 사용하고 있으며, 강의를 듣다 환경설정 오류를 마주하여 이 글을 읽는다면 자신의 OS에 맞게 설치할 수 있도록 주의하시길 바랍니다 ! 1. 자바 설치 https://www.oracle.com/kr/java/technologies/downloads/#java17 강의 내용을 정리하는 2023. 02. 17 기준으로, 스트링 부트 3.0을 선택하게..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGF9RQ%2FbtrZ2zXm8QO%2F4WLjbfZAzNVzgQwq0rCZTK%2Fimg.png)
[컴퓨터구조/운영체제] 운영체제 설명 - 여러 프로그램이 동시에 실행되는 원리 인프런/기술노트 - 컴퓨터 구조부터 클라우드 빅데이터까지 / 진로 고민, 취업 상담 # 운영체제 CPU 연산을 하며, 명령어를 처리한다 중앙처리장치 Cache Memory CPU 내부에 존재하기도하고 아니기도하다 다음 연산을 위해 프로세스의 일부가 들어간다 프로그램 N개가 동시에 실행될 때 각 프로그램의 일부 명령어의 집합 및 데이터가 메인메모리로 올라간다 메인 메모리에 올라온 명령어 집합 및 데이터는 또 다시 캐시 메모리로 올라간다 캐시 메모리에 저장된 명령어 집합 및 데이터 중 하나를 가지고 CPU는 연산을 진행한다 single core 기준으로 CPU는 한 번에 한 개만 처리가 가능하다 동시에 여러 프로그램을 실행시키기 ..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbS4piz%2Fbtr0aVKQEhR%2FKFycaXnu6YgfPOVOZx6k91%2Fimg.jpg)
[컴퓨터구조/운영체제] CPU속도가 Hz(헤르쯔)인 진짜 이유 (feat. 컴퓨터 구조) 인프런/기술노트 - 컴퓨터 구조부터 클라우드 빅데이터까지 / 진로 고민, 취업 상담 # CPU 중앙처리장치 속도와 연관됨 → 속도와 연관되며 얼마나 빠르게 처리하는가?가 중요하다 # Hz 주파수의 단위 파형을 그리면서 가는 것이다 1초에 몇 번 진동하는가의 개념 ex) 1초에 10번 진동하는 것을 10Hz라고 하다 초당 많이 진동할수록 빠르다는 개념과 연관된다 # 왜 Hz가 컴퓨터에서 속도가 되었는가? CPU가 얼마나 빠르게 명령어 및 데이터를 불러와 연산을 수행하는가? 속도는 진동과 연관이 있으며, clock이라는 개념이 등장 # clock 진동으로 치는 것으로 전기 신호와 관련이 있다 clock에 따라 데이터들이..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTorKZ%2FbtrZISpurKI%2Fh1kQYOHOMXbysp63aTC9tK%2Fimg.png)
[컴퓨터구조/운영체제] 컴퓨터구조 운영체제 클라우드 30분만에 이해하기 인프런/기술노트 - 컴퓨터 구조부터 클라우드 빅데이터까지 / 진로 고민, 취업 상담 # 폰노이만 구조 하드웨어: 어떻게 동작된다의 의미를 내포 OS: 하드웨어의 실행에 관여 # OS 파일이 모여 프로그램을 구성하게됨 프로세스: 프로그램이 실행되는 것 프로세서: 프로그램이 동작되는데 사용되게 하는 것, 즉 CPU를 의미함 OS는 프로세스를 관리하는 역할을 한다 OS가 잘 운영된다의 개념? CPU는 메모리 공간의 한계로 파일 전체를 수행하지 못하며 캐시메모리는 디스크에 비해 저장공간이 한없이 부족하다 디스크는 CPU에 비해 저렴하다 따라서 운영체제는 프로세스의 우선 순위를 결정하여 프로그램을 효율적으로 사용할 수 있게 한다 CPU는 사실..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb3zAfk%2FbtrZJ3ckZ2P%2F2nqMybIPjbt6HBnkkrwnqk%2Fimg.png)
[컴퓨터구조/운영체제] 컴퓨터 전공 수업 10분으로 압축 (컴퓨터구조 + 운영체제) 인프런/기술노트 - 컴퓨터 구조부터 클라우드 빅데이터까지 / 진로 고민, 취업 상담 # 폰노이만 구조 CPU ↔ Memory ↔ DISK 하드웨어(CPU, Memory, Disk) ↔ I/O # CPU ALU + 레지스터 ALU: 수학적 산술 연산을 하는 것이 있음 레지스터: 메모리에 있는 명령들이 올라와서 계산을 통해 연산을 하게 됨 캐시메모리: 임시저장공간 # Memory 저장공간 Memory에 컴퓨터 내 프로그램을 모두 올릴 수 없다 어떤 프로세스에 어떤 데이터를 적재시킬지가 관리 대상 → 메모리 관리 # DISK 저장소 파일에 얼마나 빠르게 접근할 것인가 → 디스크 관리 # I/O 키보드 마우스 모니터와 같은 입출..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbGfLcY%2FbtrZehQVmnw%2FkMAoQ91NRLGizdcKhMQUq0%2Fimg.png)
해당 문제도 SISS 부원 중 시스템 해킹을 처음 공부하고 있는 사람이 냈다고해서 풀어봤다. 실제 대회에서는 for beginner 태그가 붙었다고하니 아마 입문자들이 가장 먼저 도전해보지 않았을까 싶다 # 문제분석 - 주어진 소스코드 이미 소스코드가 주어졌기 때문에 우리는 실제 buf가 할당되는 크기만 확인해주면 어렵지 않게 문제를 해결할 수 있을 것이다. #include #include #include #include #include void alarm_handler() { puts("TIME OUT"); exit(-1); } void initialize() { setvbuf(stdin, NULL, _IONBF, 0); setvbuf(stdout, NULL, _IONBF, 0); signal(SIGA..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIDpEm%2FbtrZlYVXGLU%2FK0He0tdC9KQQYQr6TA6LK0%2Fimg.png)
이번에 SISS에서 처음으로 pwnable을 3명이나 출제했다는 소식에 해킹캠프는 참여하지는 않았지만, SISS 부원들이 제작한 문제만 풀어보기로 했다. # 문제분석 checksec로 확인해보니 canary외에는 크게 신경써야 할 보호기법이 보이지 않는 것 같다 카나리만 우회한다면 buffer overflow 취약점으로 return address를 조작할 수 있지 않을까라고 생각했다 문제풀이에 유용한 함수를 찾아보기 위해 pwndbg의 info func 기능을 사용해보았다 get_shell 함수를 확인할 수 있었고 gdb로 확인했을 때 shell을 딸 수 있게해주는 함수인 것을 확인할 수 있었다 main에서 사용되는 함수와 함수에 사용되는 인자 값으로 예측한 프로그램의 흐름은 다음과 같다 1. buf가 ..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIo0HT%2FbtrYMPe4EbR%2FOVGkgiS3GjYeqKWuoxThZ0%2Fimg.jpg)
[Dreamhack] 현대 암호 # 서론 대칭키 암호 시스템(Symmetric Key Cryptosystem): 송신자와 수신자가 같은 키를 공유해야하는 암호 시스템 ex) 카이사르 암호, 비제네르 암호 같은 키를 갖고 있어야 하는 특성상, 대칭키 암호 시스템은 사전에 서로 키를 공유하는 과정이 반드시 필요하다. 키 공유 알고리즘(Key-sharing Algorithm): 외부인이 키가 공유되는 과정을 도청해도, 공유되는 키는 알지 못하게 하는 방법 현대에 많은 데이터가 오가는 네트워크는 도청에 취약하므로 키를 평문으로 공유하기에 부적절하기에 시작된 연구이다. Diffie와 Hellman이 Diffie-Hellman 키 교환 알고리즘 제시 송신자와 수신자가 서로 다른 키를 사용하는 공개키 암호 시스템의 ..