전체 글106 0. 시작 알고리즘 공부를 하나씩 시작! 조금씩 꾸준히 순서대로 준비를 해보도록 하자! +) 프로그래머스 정책에 따라 해당 문제풀이 포스팅은 비공개로 전환하였습니다. (2021.09.26~) 2020. 9. 3. 2020년 하반기 계획 나 자신의 불확실함과 애매함을 계속 고민하고 있다는 생각이 들었다. 고민끝에, 이 불확실함과 애매함은 고민으로 해결되는 유형의 문제가 아님을 깨달았다. 불확실함을 확실함으로, 애매함을 탁월함으로 만드는 사람들이 있다. 그리고 그 사람들은 행동한다. 우선 해야겠다. 주어진 일을 잘 해보아야겠다. 어느 시점에 내가 열심히 한 것들이 점이 되어 연결되기를 바래본다. 그리고 이를 공부하면서 내가 어느 부분에서 재미를 느끼는 지 기록도 해보아야겠다. 2020년이 끝날때 즈음, 내가 완료할 부분은 다음과 같다. 1. 모바일 컴퓨팅 수업, 운영체제 수업, 계량 경영학 수업을 중심으로 만족할 만한 성적을 내는 학기를 보내기 2. 멋사 해커톤을 위해 제품 프로토타입 개발하여 배포까지 완료하기 3. 랩실 찾기 프로젝트 완.. 2020. 9. 2. 예외적인 제어흐름 (1부) 안녕하세요 파피몬입니다! 오늘은 예외적인 제어흐름에 대해 공부해봤습니다! Computer Systems A Programmer's Perspective (3rd Edition)의 내용을 공부한 것을 토대로한 포스팅입니다. 오개념이 있다면 알려주세요! 1부, 2부로 나눠져있습니다 :) 프로세서에 전원을 처음 공급하고 전원을 끌 때까지, 프로세서는 프로그램의 인스트럭션을 수행하게 된다. 하지만 현대 컴퓨터 시스템들은 프로그램의 실행과 반드시 관련이 있지 않은 시스템의 변화에도 반응할 수 있어야 한다! ex) HW타이머, 패킷의 네트워크 어댑터 도착, 디스크로부터 페이지 요청, 부모 프로세스가 자식 프로세스 기다리기 등등... 이를 예외적인 제어 흐름(Exceptional Control Flow)이라고 부른다.. 2020. 8. 30. 링커 (2부) 안녕하세요 파피몬입니다! 오늘은 링커에 대해 공부해봤습니다! Computer Systems A Programmer's Perspective (3rd Edition)의 내용을 공부한 것을 토대로한 포스팅입니다. 오개념이 있다면 알려주세요! 1부, 2부로 나눠져있습니다 :) ./prog로 실행하게 된다. 운영체제 입장에서 prog라는 커맨드를 처음 마주하게 되고, 아 이게 실행가능한 목적 파일이겠거니 하고 로더를 호출해준다. 디스크에 있던 실행가능한 목적파일의 code/data영역이 메모리에 복사되고, 프로그램의 엔트리 포인트에서 프로그램이 실행되게 된다. 1부에서 정적 링크의 단점을 넌지시 얘기해 봤다. printf()같이 자주 쓰이는 함수는 정적 링크로 실행 파일을 만들게 되면, 너도 나도 우리 모두 p.. 2020. 8. 29. 링커 (1부) 안녕하세요 파피몬입니다! 오늘은 링커에 대해 공부해봤습니다! Computer Systems A Programmer's Perspective (3rd Edition)의 내용을 공부한 것을 토대로한 포스팅입니다. 오개념이 있다면 알려주세요! 1부, 2부로 나눠져있습니다 :) 링커: 여러개의 코드와 데이터를 모아서 이를 연결해, 메모리에 로드 될 수 있고, 실행될 수 있는 한 개의 file을 만들어 내는 역할을 수행한다! 대부분의 컴파일 시스템은 사용자를 대신해 언어 전처리기, 컴파일러, 어셈블러, 링커를 필요에 따라 호출하게 만들어졌다. 이를 컴파일러 드라이버라고 한다. ex) GCC 드라이버 컴파일을 모두 마친 실행 파일을 prog라고 한다면, 우리는 쉘에 ./prog 라는 명령어를 통해 해당 파일을 실행.. 2020. 8. 29. [Django] 자소설 닷컴 총 복습! 멋쟁이 사자처럼에서 진행하는 자소설 닷컴 클론코딩 강의를 다 듣고, 제가 배운 것을 정리해 봤습니다! 좋은 강의 만들어주신 태훈님께 감사합니다 :) PPT를 만들어보았고, 슬라이드 아래 노트 입력 난에 제가 배운 부분을 정리해 봤습니다! 코드는 여기서 확인할 수 있습니다. >> https://github.com/PapimonLikelion/Jasoseol-Clone 2020. 8. 29. 행렬 곱셈 최적화 2편 안녕하세요 조엘입니다! 프로젝트로 진행한 행렬곱셈 최적화에 대한 포스팅을 진행하도록 하겠습니다. 소스코드는 https://github.com/joelonsw/Matrix-Multiplication-Multithreading에서 확인하실 수 있습니다! DNS알고리즘을 통해 병렬처리를 진행했지만, multi 함수는 KIJ 방식 그대로여서 LLC miss rate가 개선되지 못했습니다. 이를 개선하고자 Tiling 방법을 도입했습니다. 매트릭스의 메모리에 접근할 때, 왼쪽과 같이 탐색하게 되면, 매트릭스의 사이즈가 캐시의 사이즈보다 큰 경우, 매트릭스 탐색 후 다시 매트릭스의 첫요소에 접근할 때 캐시에 남아있지 않게 됩니다. 이를 방지하고자 Tiling 방법을 도입했는데, 이는 캐시에 남아있을 때 해당 배열에.. 2020. 7. 23. 행렬 곱셈 최적화 1편 안녕하세요 조엘입니다! 프로젝트로 진행한 행렬곱셈 최적화에 대한 포스팅을 진행하도록 하겠습니다. 소스코드는 https://github.com/joelonsw/Matrix-Multiplication-Multithreading에서 확인하실 수 있습니다! 저는 총 4가지 단계를 거쳐 최적화를 진행했습니다. 1.인덱싱 순서를 바꾸어 캐시 hit ratio을 증가시켰습니다. 2.멀티 쓰레딩을 통해 병렬처리를 진행하였습니다. 3.타일링 기법을 통해 캐시 hit ratio를 증가시켰습니다. 4.SIMD를 통해 한번에 많은 데이터를 처리할 수 있게 하였습니다. 실험은 다음과 같은 환경에서 진행했습니다. 모든 소스코드는 C++로 작성을 했고, g++ version 7.5.0을 사용했습니다. 컴파일 옵션은 최적화 옵션을 .. 2020. 7. 23. [Django] Django 소개 깃헙에 올려놓은 웹 호스팅은 정적 웹의 예시입니다. (https://papimonlikelion.github.io/) 사용자는 그냥 와서 보고 가기만 하는 용도의 역할만 하죠. 사용자가 댓글을 달거나, 파일을 업로드하거나 할 수가 없어요. 만약 사용자가 댓글을 달게 해준다면, 주인장인 제가 어서 빨리 사용자의 댓글을 확인해서 다시 코딩해서 다시 업로드 해 줄 수 밖에 없겠네요. 동적 웹은 하지만 그렇지 않아요! 우리가 맨날 쓰는 유튜브, 네이버같은 페이지들에서는 댓글도 실시간으로, 파일도 올리고, 여러가지 활동을 지원해 줍니다. 사용자의 요청에 따라 홈페이지의 데이터베이스 어딘가에 그 요청이 저장이 되어, 그에 해당하는 응답을 바로 바로 저에게 다시 보여주는 것이죠. 동적 웹을 만드는 방법은 여러가지가 .. 2020. 5. 16. 이전 1 ··· 7 8 9 10 11 12 다음 반응형