본문 바로가기
728x90

sw사관학교 정글22

240111 | 개발에 대한 적성? 그게 중요할까 오랜만에 정글 소환...! 정글이라는 부트캠프로 카이스트에서 5개월 동안 합숙했던 생활이 개발자 커리어의 첫 발자국이었다. 정글 13주차 때 다음과 같은 고민을 했었다. 나 스스로에게 질문해보자. 개발 시작한지 얼마 되지 않았지만, 과연 나는 재밌게 공부하고 있는가? 솔직히 잘 모르겠다. 다만 문제를 해결하기 위해 어떻게든 부딪혀 보고 있다. 그리고 해결되었을 때 성취감이 매우 좋다. 다시 질문으로 돌아와서, 개발을 좋아하는지 아직 모르겠다. 그러나 좋아해질 수도 있다고 생각한다. 지금은 크게 고민하지 말자. 지금 순간에 내가 할 수 있는 최선을 다하자!! 위와 같은 생각을 가지게 된 것은 아마도 류석영 교수님의 조언 덕분이었던걸로 기억한다. 정확하게 기억은 나지 않지만, 나만의 무기 프로젝트 들어가기 .. 2024. 1. 11.
정글에서 살아남기 | WEEK19 | 정글 안녕!!! 그동안 감사했습니다! 개발자 홀로서야 할 때 5개월이라는 길지도 짧지도 않은 대전에서의 정글 생활이 끝났다. 소감을 먼저 간략하게 얘기하자면, 후련하기보다는 걱정이 조금 더 앞선다. 스스로도 부족한 부분과 채워야 할 점들이 많다고 느끼고 있기 때문이다. 그래도 소프트웨어 엔지니어가 되기로 굳게 다짐한 이상 취업까지 쉽지 않을지라도 끝까지 할 수 있는 모든 것들을 해볼 것이고, 할 것이다. 만약 내 주변에 나처럼 비전공자이고 코딩을 1도 모르는 사람이 있다면 고민하지도 않고 '정글'을 추천할 것이다. 어떻게 보면 5개월이 개발자로 성장하기에 길지 않은 기간일지라도, 적어도 개발자가 되기 위한 마인드와 학습 태도는 확실하게 배울 수 있다는 점이 차별화된다고 생각하기 때문이다. 또한 대전 카이스트 문지캠퍼스에서 합숙하고, 자는 시간을 쪼개가면서 코딩에만.. 2021. 12. 25.
운영체제(Operating System) | 메모리(Memory) 스레드까지 하다 갑자기 메모리까지 점프... 어쩔 수 없다. 지금 핀토스 virtual memory를 진행하고 있어서 일단 메모리 관련 OS부터 정리하려고 한다. 메모리 시스템은 여러 가지 용량, 비용, 접근 시간을 가지는 저장 장치들의 계층구조이다. 메모리 계층구조는 아래 사진 참조! CPU 레지스터: 가장 자주 이용하는 데이터 보관(locality) 캐시: SRAM. CPU부근에서 비교적 느린 메인메모리에 저장된 데이터와 인스트럭션들의 부분집합에 대한 준비장소 메인메모리: DRAM. 크고 느린 디스크들에 저장된 데이터를 준비하는 데 사용, 이 디스크들은 네트워크로 연결된 다른 머신들의 디스크에 저장된 데이터를 위한 준비장소 1. RAM(랜덤-접근 메모리) | SRAM (정적 RAM) SRAM, 즉 정.. 2021. 10. 26.
정글에서 살아남기| WEEK10 | 가상 메모리 너무 어렵다 프로젝트 2를 겨우 끝냈다. 그것도 extra 부분까지 다 구현해서 테스트 케이스 97개를 모두 pass했다. 하지만 과연 올패스를 하는 것만으로 만족해야 하는걸까? 나는 정말 핀토스 user program 부분들을 모두 이해했을까? pintos는 카이스트에서는 원래 한 학기에 걸쳐서 진행하는 프로젝트라고 한다. 심지어 전공 학생들도 매우 힘들어 하고 제일 싫어하는 과목이라고 한다. (교수님피셜임 ㅋㅋㅋ) 교수님 강의를 들을 때, 홍욱이형이 "비전공자 입장에서 핀토스를 공부하고 있는데, 어떤 부분에 초점을 맞춰서 공부를 해야 하는지?" 라는 질문을 했었고, 교수님께서는 "학생일 때, 이 정도로 길고 복잡한 코드량을 경험하기 드물다. 이 코드들을 읽으면서 이해하고 배치할 줄 아는 것이 pintos의 목적 .. 2021. 10. 17.
정글에서 살아남기| WEEK09 | syscall......!!!!!!!!!! 캠퍼스 주변에 높은 건물이 없어서 뻥 뚫린 하늘을 볼 수 있는 것이 정말 좋다. 저녁 먹고 강의실 가는 도중 하늘 너무 예뻐서 바로 카메라 들고 사진 찍었다. 결과물 만족쓰 이번 주는 저번주에 이어 pintos project2를 공부하고 있다. 다음주 목요일까지 프로젝트를 끝내야 한다. 아직 시간이 꽤 남아있지만 여전히 테스트를 통과하지 못 하고 있다. 시스템 콜 부분을 어찌저찌 구현을 했다만, halt 시스템 콜만 pass가 되고 나머지 부분들은 계속 fail.... 일단 오늘 내로 에러 원인을 찾고 해결한 후, 내일 조원들에게 알려주는 것이 목표이긴 한데.... 쉽진 않다 ㅠㅠㅠ 내일까지 해결되지 않으면 동기들에게 물어봐야겠다. 2021. 10. 10.
정글에서 살아남기| WEEK08 | 본격적인 OS Deep-Dive 시작 정글에 들어온 지 벌써 3달 째가 되었다. 하루하루가 말도 안 되게 빨리 지나간다. 아니 스쳐가는 것 같다. 매일 강의실에서 내가 잘하고 있는지 아닌지 불안해하며 공부만 하다 보니 악명 높은 pintos프로젝트까지 오게 되었다. 분명히 엊그제 알고리즘 짜고 rbtree배우고 malloc하고 있던 것 같은데 시간 미친 듯이 빠름.... 여하튼 정글 들어온 날부터 2달 동안 아침 7시에 기상하여 꾸준히 아침 운동을 했다. 5개월간 장기적인 체력 관리를 위해서 필수라고 생각했고, 정글 이전부터 내 생활 패턴이 아침에 일찍 일어나기 때문에 시간과 동선을 최적화하여 강의실 가기 전 아침 운동 - 조식을 패턴화했던 것이다. 그런데 그렇게 2달이나 패턴을 지켰음에도 불구하고 오전마다 피곤하다.. 갈수록 높은 난이도 .. 2021. 10. 4.
운영체제(Operating System) | 스레드(Thread) 프로세스에 이어 스레드에 대해 정리하도록 하겠다. 1. 스레드(Thread)의 개념 스레드는 프로세서(CPU) 활용의 기본 단위이다. 프로세스의 제어 요소 외의 코드, 데이터 및 자원들은 프로세스의 다른 스레드들과 공유한다. 아래의 그림으로 예를 들어보자. 아래 중앙의 동그라미는 워드 문서를 편집하는 프로세스이다. 한 프로세스 안에 여러 개의 스레드가 존재하는데, 어떤 스레드는 입력과 관련된 제어, 다른 스레드는 문서에 이미지나 텍스트는 보여주는 스레드, 또 다른 하나는 데이터를 저장하는 스레드이다. 만약 스레드가 하나였다면 어떻게 되었을까? 편집기에 "안녕하세요"를 입력하려고 한다. 키보드로 "ㅇ"을 치면 입력에 응답하는 스레드가 일을 할 것이고, 그 때 동안 워드 문서창은 일을 못 한다(스레드가 키보.. 2021. 9. 28.
운영체제(Operating System) | 프로세스 관리 전 장에서 프로세스는 실행 중인 프로그램이라고 했다. 이번 글에서는 프로세스에 대해 더 자세하게 정리하려고 한다. 1. 프로세스 정의 프로세스는 실행 중인 프로그램으로, 커널에 등록되고 커널이 관리하는 작업이다. 프로세스는 각종 자원들을 요청하고 할당 받을 수 있는 개체(entity)이며, 실행 중에도 각종 자원을 요구하고 할당, 반납이 진행된다(active entity). * 자원(Resource)? 커널의 관리 하에 프로세스에게 할당/반납 되는 수동적 개체(passive entity) 하드웨어 자원: CPU, memory, 모니터, 키보드 등 소프트웨어 자원: 메시지, 시그널, 파일 등 * cf) Job vs Process 프로세스 이전에 작업(Job)이라는 개념이 있다. Job은 실행할 프로그램 +.. 2021. 9. 28.
운영체제(Operating System) | 운영체제 개요 어제를 기점으로 악명이 자자한 핀토스를 시작하게 되었다. 정글 1기 분들 핀토스 얘기 나올 때마다 모두 다 하나 같이 PTSD 오시는거 보고 겁나 쫄아 있는 상태임... pintOS, 이제 과제 시작되었는데 솔직히 뭔지 모르겠다. 운영진님들이 올려주신 GitBook을 보면, 핀토스는(pintos-kaist) 심플한 운영체제(x86-54) 프레임워크라고 한다. 커널 스레드, 사용자 프로그램 로드 및 실행, 파일 시스템을 지원하지만 이 모든 것을 매우 간단한 방식으로 구현할 것이라고 한다. (이 양반들의 심플, 간단이라는 단어하고 내가 아는 단어하고 다른 단어인 듯;;) 여하튼 핀토스 과제를 하기 위해서는 전 글에서도 계속 얘기했던 것처럼 기본적인 OS에 대한 지식이 탑재되어 있어야 한다. 전에 malloc.. 2021. 9. 28.
728x90
LIST