전체보기

    [Dreamhack] Computer Architecture 정리

    컴퓨터 구조와 명령어 집합구조, 인텔의 x86-64에 대한 내용 정리이다. 컴퓨터 구조 중에서 CPU가 사용하는 명령어와 관련된 설계를 명령어 집합구조(Instruction Set Architecture)라고 한다. 가장 널리 사용하는 ISA 중 하나가 인텔의 x86-64 아키텍처이다. 컴퓨터 구조와 명령어 집합 구조 Computer Architecture란 컴퓨터가 효율적으로 작동할 수 있도록 하드웨어 및 소프트웨어의 기능을 고안하고, 이들을 구성하는 방법이다. 컴퓨터 구조는 컴퓨터의 기능 구조에 대한 설계, 명령어 집합구조, 마이크로 아키텍처, 그리고 기타 하드웨어 및 컴퓨팅 방법에 대한 설계 등이 포함된다. 컴퓨터의 기능구조에 대한 설계란 컴퓨터가 연산을 효율적으로 하기 위해 어떤 기능들이 컴퓨터에..

    [Dreamhack] Linux Memory Layout 정리

    CPU가 필요한 데이터를 읽고 처리하는데, 연산의 결과를 메모리 다시 적재를 한다. 그래서 CPU의 동작과 메모리 사이의 관련은 크고, 메모리 값의 조작으로 CPU의 잘못된 동작을 유도 할 수 있다. 이 오염된 메모리를 메모리 오염 취약점이라고 한다. (드림핵 커리큘럼에서는 메모리 오염에 관련 취약점을 공부함) 리눅스 프로세스의 메모리 구조 리눅스에서 프로세스는 크게 5가지의 세그먼트(Segment)로 구분한다. 세그먼트 : 적재되는 데이터의 용도별로 메몰의 구획을 나눈 것. 용도별로 나누어, 용도에 맞게 적절한 권한이 부여 되는데, 이 권한은 읽기, 쓰기, 실행이 존재하며, CPU는 이 권한이 부여된 행위만 할 수 있다. 코드(Text) 세그먼트(Code Segment) - 실행 가능한 기계코드가 위치..

    [WEB] Server Side Request Forgery (with Dreamhack)

    웹 개발 언어는 HTTP 요청을 전송하는 라이브러리 제공 PHP : pup-curl NodeJS : http 파이썬 : urllib, requests 이러한 라이브러리는 요청을 보내는 클라이언트 뿐 아니라 서버간 통신을 위해도 사용. 일반적으로 다른 웹 애플리케인션에 존재하는 리소스를 사용하기 위한 목적으로 통신. 웹 서비스의 구성요소가 증가함으로서, 관리 및 코드의 복잡도를 낮추기 위해 마이크로서비스들로 웹 서비스 구현 마이크로서비스는 HTTP, GRPC 등을 사용해 API 통신 마이크로서비스란? 소프트웨어가 잘 정의된 API를 통해 통신하는 소규모의 독립적인 서비스로 구성되어 있는 경우의 소프트웨어 개발을 위한 아키텍처 및 조직적 접근 방식이다. API란? API란 Application Program..

    [백준] 런타임 에러 OutOfBounds, 메모리 초과 / 10950 A + B -3

    [백준] 런타임 에러 OutOfBounds, 메모리 초과 / 10950 A + B -3

    문제 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10) 출력 각 테스트 케이스마다 A+B를 출력한다. 풀이 및 코드 해당 문제는 케이스의 개수 T를 입력받는게 주 관건이다. 문제에서 케이스의 개수를 정확히 정해주지 않았기 때문이다. 그래서 배열을 사용하여, T가지의 경우의 수를 받아 들이려고 할 때, 케이스의 개수를 잘 정해주지 않으면 런타임 에러 중 OutOfBounds가 발생한다. 런타임 에러란? 프로그램이 비정상적으로 종료된 경우입니다. 그리고 OutOfBounds는 이렇게, 컨테이너 또는 배열에서 할당된 경계를 넘..

    [백준] 2525 오븐시계

    https://www.acmicpc.net/problem/2525 문제 KOI 전자에서는 건강에 좋고 맛있는 훈제오리구이 요리를 간편하게 만드는 인공지능 오븐을 개발하려고 한다. 인공지능 오븐을 사용하는 방법은 적당한 양의 오리 훈제 재료를 인공지능 오븐에 넣으면 된다. 그러면 인공지능 오븐은 오븐구이가 끝나는 시간을 분 단위로 자동적으로 계산한다. 또한, KOI 전자의 인공지능 오븐 앞면에는 사용자에게 훈제오리구이 요리가 끝나는 시각을 알려 주는 디지털 시계가 있다. 훈제오리구이를 시작하는 시각과 오븐구이를 하는 데 필요한 시간이 분단위로 주어졌을 때, 오븐구이가 끝나는 시각을 계산하는 프로그램을 작성하시오. 입력 첫째 줄에는 현재 시각이 나온다. 현재 시각은 시 A (0 ≤ A ≤ 23) 와 분 B ..

    [백준] 2884 알람시계

    https://www.acmicpc.net/problem/2884 문제 상근이는 매일 아침 알람을 듣고 일어난다. 알람을 듣고 바로 일어나면 다행이겠지만, 항상 조금만 더 자려는 마음 때문에 매일 학교를 지각하고 있다. 상근이는 모든 방법을 동원해보았지만, 조금만 더 자려는 마음은 그 어떤 것도 없앨 수가 없었다. 이런 상근이를 불쌍하게 보던, 창영이는 자신이 사용하는 방법을 추천해 주었다. 바로 "45분 일찍 알람 설정하기"이다. 이 방법은 단순하다. 원래 설정되어 있는 알람을 45분 앞서는 시간으로 바꾸는 것이다. 어차피 알람 소리를 들으면, 알람을 끄고 조금 더 잘 것이기 때문이다. 이 방법을 사용하면, 매일 아침 더 잤다는 기분을 느낄 수 있고, 학교도 지각하지 않게 된다. 현재 상근이가 설정한 ..

    [c언어 프로그램]달팽이 배열 프로그램

    [c언어 프로그램]달팽이 배열 프로그램

    -실행 결과.- 안녕하세요. 오랜만이죠? 요새 학교 생활 때문에 좀 바빠져서 할 시간이 없네요. 코딩은 하긴 하는데 블로그 할시간은 없고.. 본론으로 들어가겠습니다. 이 달팽이 배열 알고리즘을 해보게된 계기가, 제가 네이버 블로그를 하면서 서로이웃분이 이걸 하셔가지고 저도 하게 되었습니다. 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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 #include #include int main(void) { while (1) { int ar[100][100] = { 0 ..

    [c언어 프로그램]생일 케이크 프로그램.

    [c언어 프로그램]생일 케이크 프로그램.

    안녕하세요. 할말은 별로 없으니 바로 본론으로 들어가죠. 이 케이크 프로그램은 친구 생일이라 만든 프로그램인데 이왕에 포스팅을 하는거라 (허허) 실행 결과 소스 코드 입니다. /**/ #include int main(void) { const char ch[][5] = { " ","┌","─","│","┐","└","┘","¶","§", "■","□","▤", "▒","㏄" }; int cake[][33] = { {1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,4}, {3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3}, {3,0,0,0,8,0,8,0,8,0,8,0,8,0..

    [c언어 강좌]일곱번째, scanf()함수

    [c언어 강좌]일곱번째, scanf()함수

    안녕하세요, 벌써 7강이네요. 이번에는 scanf 함수에 대해 해보도록 하겠습니다. 우리는 지금까지 모니터에 데이터를 출력을 하는 printf()함수에 대하여 했었습니다/ 그러면 scanf()함수가 뭔가 하면 키보드(입력장치)로 데이터를 입력 하는 함수 입니다. 참고 이렇게 입력장치로 부터 데이터를 입력 받는 것이 표준 입력이라고 합니다. 자 scanf() 함수도 표준 라이브러리 함수 이므로 stdio.h 헤더 파일에 정의가 되있습니다. 그럼 printf() 함수와 같이 사용을 하려면 stdio.h 파일을 include 해야겠죠? scnaf()함수의 기본 구조 먼저 큰따옴표 안의 입력을 위한 서식 문자를 입력해 주고 그 뒤에 큰따옴표를 나와서 반점을 찍고 그 데이터를 저장할 변수 이름을 작성해 주시면 되..

    [c언어 강좌]여섯번째, printf()함수의 기능 특수 문자

    [c언어 강좌]여섯번째, printf()함수의 기능 특수 문자

    안녕하세요. 벌써 여섯번째 강좌 까지 왔네요. 자 이제 본격적으로 들어가도록 하죠. 먼저 예를 들어 밑의 예제를 보시죠. 이것은 저희가 세번째 강좌에서 했던 예제입니다. 자 여길 보면 모르는게 하나 있으실 겁니다. 바로 이것입니다. 이 특수 문자를 처음 보시면 무엇인지 모르겠습니다. 키보드에는 '\'이런 문자로 나타나 있을 겁니다. 자 그럼 이게 뭔지 특수 문자의 종류를 보시죠. 특수 문자 출력 결과 \n 개행 (엔터 기능) \a 경고음 발생 \\ 역슬래시 출력 \b 백스페이스 \' 작은 따옴표 출력 \" 큰따옴표 출력 \r 개리지 리턴 자 이렇게 됩니다. 이제 예제를 보시죠. 실행 결과 위의 경고음을 나오게 하는 \a 특수 문자는 이게 소리가 윈도우 버전마다 다를수도 있습니다. 자 위의 실행 결과를 보..