본문 바로가기
728x90

정글40

정글에서 살아남기 | WEEK07 | 웹서버 만들기 이번 주 차는 일이 많았다. 추석 연휴도 있었고, 백신 맞아서 두통으로 고생도 했었고(물론 심하지는 않아서 다행쓰) 특히 추석 때 고향에 잠깐 내려갔다가 다시 대전으로 복귀할 때 버스를 놓쳐서 다음 시간 버스를 탔었고(진짜 운좋게 한 자리 남았었음..) 차 거어어업나게 막혀서 버스에서만 다섯 시간 있었고, 캠퍼스까지 복귀하는데 6시간 30분이나 걸렸었다.. 이것만으로도 체력 고갈... 여하튼 이번 주는 웹서버 만들기가 목표였고, 역시 C언어로 Tiny 웹 서버를 구현했었다. flask 프레임워크를 이용하여 웹 서버를 만드는 것과는 다르게 더 low하게 코드 구현을 해야 되어서 꽤 어려웠던 부분들이 많았다. 1. 웹서버 만들기 1. 네트워크 프로그래밍(Network Programming) | 클라이언트, .. 2021. 9. 28.
정글에서 살아남기 | WEEK06 | 시스템 콜, 데이터 세그먼트, sbrk, 메모리 단편화? 태초마을로 돌아가자(컴퓨터 시스템 기초 이해 필수) 정글 6주 차!! week06의 키워드 WEEK06: 시스템 콜, 데이터 세그먼트, sbrk, 메모리 단편화 week05주 때 RBTREE를 구현하면서 malloc을 사용했었다. 그리고 이번 주 차에는 내가 사용했던 malloc함수를 내가 만드는 것이 목표! 1. Malloc Lab 구현 저번 주에는 실사용에 사용되는 효율적인 자료구조를 통해 C언어 문법에 대해서 익혔다면, 이번 주는 C언어에서 메모리 할당에 사용되는 malloc함수를 직접 구현하면서 데이터가 메모리에 어떤 방법으로 할당되는지 등 메모리에 대한 개념을 이해하는 것이 과제의 목표였다. 말롭랩 과제에 대한 자세한 설명은 아래 링크로! 2021.09.14 - [개발자 도전기/[SW사관학교 정글] 개발일지] - Malloc Lab | 동적 메모.. 2021. 9. 19.
Malloc Lab | 동적 메모리 할당(3) - Implicit - first fit, next fit 코드 구현 Malloc Lab | 동적 메모리 할당(1) - 개념 정리 Malloc Lab | 동적 메모리 할당(2) - 묵시적 가용 리스트(Implicit free list) 더보기 그 외 explicit 방법 구현 등 코드도 보고 싶다면? https://github.com/dapsu/week06-malloclab.git Implicit - First fit /* * mm-naive.c - The fastest, least memory-efficient malloc package. * * In this naive approach, a block is allocated by simply incrementing * the brk pointer. A block is pure payload. There are no he.. 2021. 9. 15.
Malloc Lab | 동적 메모리 할당(2) - 묵시적 가용 리스트(Implicit free list) Malloc Lab | 동적 메모리 할당(1) - 개념 정리 Malloc Lab | 동적 메모리 할당(1) - 개념 정리 동적 메모리 할당? C언어를 공부하면서 배열을 정할 때 배열의 크기도 명확하게 설정해야 하는 것이 파이썬과 달라 조금 낯설었다. 예를 들어 A대학교 B학과의 학년 별로 코로나 백신 접종을 얼 dapsu-startup.tistory.com 이전 포스팅에서 동적 메모리에 대한 간단한 개념 소개와 명시적 할당기 중 묵시적 가용 리스트, 명시적 가용 리스트 두 가지 방법에 대해서 짧게 설명했었다. 이번에는 묵시적 가용리스트(Implicit free list, 줄여서 Implicit라고 부르겠음)에 대해 정리해보려고 한다. 묵시적 가용 리스트(Implicit free list) 실용적인 할당기.. 2021. 9. 14.
Malloc Lab | 동적 메모리 할당(1) - 개념 정리 동적 메모리 할당? C언어를 공부하면서 배열을 정할 때 배열의 크기도 명확하게 설정해야 하는 것이 파이썬과 달라 조금 낯설었다. 예를 들어 A대학교 B학과의 학년 별로 코로나 백신 접종을 얼마나 했는지 결과를 출력하는 프로그램을 만든다고 생각해보자. 각 학년 별로 학생 수가 모두 다르기 때문에 배열을 일일히 정하는 것은 효율적이지 않다고 느껴진다(물론 학생 수 정도야 귀찮아도 가능하겠지만, 다뤄야 하는 데이터가 방대해진다면 어질어질해진다). 그렇다고 크기를 '충분히 크게' 잡게 된다면 메모리가 낭비되는 경우가 발생할 것이다. 이런 낭비를 막기 위해 '학년 별 학생 수'를 입력 받고 그 학생 수 만큼 배열의 크기를 정할 수 있다면 효율적일 것이고, 이를 가능하도록 하는 방법이 바로 동적 메모리 할당이다. .. 2021. 9. 14.
정글에서 살아남기 | WEEK05 | 이런 C......!! Red-Black TREE 구현하기 4주 간 알고리즘 던전에서 나왔더니 C언어의 지옥이 다가왔다...! 새로운 탐험 시작!! 운영진님들이 말하는 C언어란... 시작부터 겁을 주신다...ㅋㅋ 여하튼 C는 Assembly 언어와 매우 가까운 언어로, C를 사용하면서 조금 더 컴퓨터의 본질에 가까이 가는 것을 기대하신다고 한다. 그리고 이번 week05주 차의 키워드 WEEK05: 동적 메모리 할당, 포인터, 메모리 누수, 균형 이진 탐색 트리 저 단어들은 뭘까...? 뭐 알고리즘 할 때도 당연히 다 모르던 키워드들이었기 때문에 크게 신경쓰지 않았다. 결국엔 다 알게 될 것이기 때문에!! 1. 개발환경 설치 C언어 개발을 더 매끄럽게 하기 위해 Ubuntu 20.04 LTS (x86_64)환경에서 gcc 9.x 컴파일러를 사용하는 것을 권장하셨.. 2021. 9. 12.
정글에서 살아남기 | WEEK04 | 다이나믹 프로그래밍은 다이나믹하지 않다구 드디어 알고리즘 마지막 4주 차...!!! 진짜 내가 컴퓨팅 사고로 전환하고 있는지 잘 모르겠지만 확실한 점은 알고리즘 문제를 건드릴 수는 있게 되었다는 점..? 처음에는 알고리즘 문제를 보고 나서 어떻게 풀어야 할지 접근조차 하지 못했었는데 이제는 완벽하게 정답을 출력하지는 못하더라도 이렇게 풀면 되겠다~라는 생각을 가지고 코드를 작성하기는 한다는 것(물론 결국 오답이다 ㅎㅎㅎ 이제 화나지도 않아) 여하튼, WEEK04주 차의 알고리즘 키워드! WEEK04 : 동적 프로그래밍, 그리디 알고리즘 이번 주 과제의 수는 14개였다. 저번주처럼 과제 수가 적었고, 그 의미는 동적 프로그래밍(dp), 그리디 알고리즘(greedy) 역시 만만치 않게 어려운 카테고리라는 것이다. 그래도 저번 주에 기대 이상으로 d.. 2021. 9. 5.
정글에서 살아남기 | WEEK03 | 여전히 느리지만 그래도 성장하는 중! 대전 전민동에서 생활한 지 벌써 한 달이나 됐다. 이제 여기서 사는 것도 점점 적응되고 있다. 여전히 알고리즘의 늪에서 허우적거리는 것은 변하지 않았지만, 그래도 심리적인 압박이나 불건전한 스트레스는 많이 줄었다. 캠퍼스에서의 생활도 만족한다. 아침마다 운동하고, 빡세게 공부하고 기숙사 가자마자 기절하고. 매일 강의실에서 살다시피 하다 보니 시간을 허투루 썼다는 후회나 아쉬움은 전혀 없다. 일요일에 알람도 없이 오전을 풀로 자고 일어나도 죄책감이 없다 ㅋㅋㅋ 무엇보다 이 동네가 제일 좋은 이유 중 하나는 캠퍼스 주변에 맛집이 지이인짜 많다는 것이다. 곰탕부터 시작해서 라멘, 초밥, 삼계탕 등등 진짜 어떤 가게를 들어가도 눈 뒤집혀서 퍼먹는다. 이 동네 가게 사장님들 무림 고수들이 작은 동네에 은둔하면서 .. 2021. 8. 29.
정글에서 살아남기 | WEEK02 | 코딩 못해? 어쩌라고! 결국 잘하게 될거야 정글에서 WEEK01~04(알고리즘 과정)은 프로그래머로써 학습하는 방법을 배우는 기간이다. 빠르게 배우면서 시행착오를 가져라. 운영진님들과 면담할 때 의장님께서 해주셨던 조언이다. 그리고 이 말 덕분에 저번 주에 비해 한결 편한 마음으로 공부했다. 내가 알고리즘을 못 하는 것은 당연하다. 하지만 모르고 못 하기 때문에 알기 위해 매일 10시간 이상씩 공부를 하는 것이고, 결국은 할 수 있게 될 것이라고 믿고 있다. 이런 마인드 덕분인지 확실히 덜 스트레스받으면서 공부를 했던 것 같다. (물론 8번 연속으로 시간초과 되는 문제 만나면 머리털 빠질 만큼 짜증 난다ㅡㅡ) 정글 week02주 차. 이번 주차의 알고리즘 키워드. WEEK02 : 이분탐색, 분할정복, 스택, 큐, 우선순위 큐 1. 문제 풀이 솔직.. 2021. 8. 22.
728x90
LIST