일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Kafka
- Notion
- React
- 메세지큐
- finops
- billing
- CloudWatch
- 노션
- serverless
- Leetcode
- HEXO
- 2020년
- LAMBDA
- AWS
- github pages
- 회고
- 백준
- zookeeper
- amqp
- ddd
- Zappa
- 머신러닝
- 도메인 주도 설계
- 아키텍처
- API Gateway
- 맥주
- 하이트진로
- 알고리즘
- S3
- AWSKRUG
- Today
- Total
목록프로그래밍 (25)
인생은 고통의 연속
2019/02/08 - [프로그래밍/알고리즘] - 9일차 리뷰 전공수업때 안 배운 방법인데 되게 신기하게 정렬이 된다. 알고리즘 만들어내는분들은 대단한 듯하다. step9 정렬해보기3 10989N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.(카운팅 소팅) 내 풀이 : https://github.com/gnidoc327/one-day-one-problem/commit/6d1f819e18e46e9c863f27c3abf5684a673e96df 어떤 정렬인지 몰라서 나도 다른 블로그 글을 참고했다. 시간복잡도는 O(n) 매우 속도가 뛰어난 정렬방식이다. 하지만 공간복잡도에서 지옥을 경험할 수 있다. 예를 들어서 0과 1억 2개를 정렬한다고 하면 공간복잡도는 1억이다. 메모리 공간으로..
2019/01/17 - [프로그래밍/알고리즘] - 8일차 리뷰최근에 명절 + 면접절차 중이라 글을 못썼다;; 그리고 방금도 면접을 보고 왔는데 또 멍청한 소리를 하고 온 것 같다;;준비를 열심히해도 눈치가 없어서 큰일이네.... 또 다 된 밥상은 뒤엎고 나온거 같다. 기회는 또 있을테니 공부라도 열심히해야지... 문제는 예전에 풀었는데 이제서야 정리한다;; step9 정렬해보기2 2751N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.(머지소팅)내 풀이 : https://github.com/gnidoc327/one-day-one-problem/commit/e8df0795b605822deaa66c4aeb4b82f8b7a26646 오랜만에 짜려고 하니 개념이 헷깔렸다. 반씩 쪼개가..
동기화 원칙backgroud공유된 데이터에 대한 동시 접근으로 인해 데이터 불일치 발생일관된 데이터 관리를 위해서 협업 프로세스의 순서있는 실행을 보장하는 메커니즘이 필요하다critical section 문제순수한 sw 솔루션hw에서 도움을 받을 수 있다.busy waiting 없는 동기화semaphore(세마포어)mutex lockcondition variables 한정 버퍼(bounded buffer) = 생산자-소비자 문제(producer-consumer problem)만약에 프로세스 2개가 shared data의 변수들을 공유한다고 했을때위의 코드 중 atomic operation은 conter++; 과 conter--; 이다.※ atomic operation : interruption 없이 전체..
프로세스간 커뮤니케이션프로세스간 커뮤니케이션이 필요한 이유는 다음과 같다.정보 공유(파일...)연산 속도 증가모듈성보호멀티테스킹의 편리함 프로세스간 커뮤니케이션 메커니즘은 크게 메모리 공유와 메세지 전달 방식 2가지가 있다. 메세지 전달(Message Passing)대표적인 메세지 전달 방식은 pipes, sockets, remote procedure calls가 있다직/간접 커뮤니케이션 - 프로세스 or ports고정 or 변화가능한 사이즈copy or reference로 보내기automatic or explicit bufferingblocking or non-blocking(send or receive) Threads전용 주소 공간 없이 실행 중인 프로그램OS에서 memory protection은 프..
유저/커널 모드(user/kernel mode)부팅 후, 인터럽트, 시스템콜, exception이 발생하면 커널 모드로 전환한다. 즉, 커널모드는 모든 시스템 메모리와 모든 CPU 인스트럭션에 접근이 허가된 프로세서의 실행 모드를 말한다. 유저모드는 유저가 접근할 수 있는 영역을 제한적으로 두고 시스템 리소스에 함부로 침범하지 못하는 모드 시스템콜(system call) vs 인터럽트(interrupt)시스템콜 : OS의 커널이 제공하는 서비스에 대해 응용프로그램의 요청에 따라 커널에 접근하기 위한 인터페이스기능사용자 모드에 있는 응용 프로그램이 커널의 기능을 사용할 수 있도록 한다.시스템 호출을 하면 사용자 모드에서 커널 모드로 바뀐다.커널에서 시스템 호출을 처리하면 커널 모드에서 사용자 모드로 돌아가..
OS란? 컴퓨터 시스템 구조 기본적으로 컴퓨터 시스템은 하드웨어 위에 시스템 소프트웨어(OS, Window System 등)이 동작한다. 그래서 OS개발자가 software API를 만들면 어플리케이션 개발자는 그걸 사용한다.(abstraction) 여기서 OS(Operating System)은 하드웨어를 추상화시킨 소프트웨어를 말한다. 구체적으로는 하드웨어의 디테일한건 숨기고 다른 사람이 쉽게 쓸 수 있도록 구현한 소프트웨어다. OS는 또한 프로세스, 메모리, 디스크, 네트워크 등 리소스를 관리한다. 프로세스(Processes) vs 프로그램(Program)프로세스란 동작하는 프로그램의 인스턴스를 말한다.프로그램은 실행할 수 있는 파일을 말한다.(프로세스 != 프로그램) 운영체제(OS) vs 커널(ke..
실제 동작 구현 : https://www.cs.usfca.edu/~galles/visualization/Algorithms.html Data Structure Visualization www.cs.usfca.edu 1. 선형 리스트 stack 한 쪽 끝에서만 자료를 넣거나 뺄 수 있는 선형 구조(LIFO) queue 먼저 집어 넣은 자료가 먼저 나오는 선형 구조(FIFO) double-end queue(deque) 삽입/삭제가 양 끝에서 허용되는 선형 구조 scroll : 입력이 한쪽만 가능함 shelf : 출력이 한쪽 끝으로만 가능함 priority queue 우선 순위에 따라서 순서대로 처리하는 선형 구조 주로 heap으로 구현된다. 만약 우선 순위가 높은 데이터를 삭제할 경우(1삭제) 마지막 노드를..
2019/01/14 - [프로그래밍/알고리즘] - 7일차 리뷰 낮잠, 면접, 약속 등 이것저것해서 2일 동안 문제를 못풀었는데 마침 짬이 나서 한 문제 풀었다. 이제 본격적인 알고리즘의 서막이자 꽃! step9 정렬해보기 2750N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 내 풀이 : https://github.com/gnidoc327/one-day-one-problem/commit/7133b2d8c2f76c11bcb46291fe7e59c189e98846 문제에서는 어떤 정렬 알고리즘을 쓰라는지 안나와있어서 Arrays.sort를 사용해서 처음에 풀었다.다음껄 풀어야지했는데 설명란에 이런게 있더라... (아하 문제 푸는게 중요한게 아니구나!) 신입생때 c언어 과제가 버블소..
2019/01/12 - [프로그래밍/알고리즘] - 6일차 리뷰 step8은 규칙찾기 문제가 어려워지기 시작해서 이제 매일 1문제씩 풀어도 될 듯하다. 마지막 문제(6064번)는 잘 풀긴했는데 일부 케이스가 통과가 안되서 다시 풀어야할 듯 내일 시간되면 풀어보는걸로 ㅎㅎ 못푼 한문제를 제외하고 리뷰! 1011우현이는 어린 시절, 지구 외의 다른 행성에서도 인류들이 살아갈 수 있는 미래가 오리라 믿었다. 그리고 그가 지구라는 세상에 발을 내려 놓은 지 23년이 지난 지금, 세계 최연소 ASNA 우주 비행사가 되어 새로운 세계에 발을 내려 놓는 영광의 순간을 기다리고 있다.그가 탑승하게 될 우주선은 Alpha Centauri라는 새로운 인류의 보금자리를 개척하기 위한 대규모 생활 유지 시스템을 탑재하고 있기 ..
2019/01/12 - [프로그래밍/알고리즘] - 5일차 리뷰 문제가 겹치는 것도 있고 잠이 안와서 step 2개를 풀었다. step6는 1차원 배열 사용하기step7은 문자열 사용하기 어려운 문제는 없었고 좀 어이 없는 문제가 있어서 대충 기록만 남겨둠 step61152영어 대소문자와 띄어쓰기만으로 이루어진 문자열이 주어진다. 이 문자열에는 몇 개의 단어가 있을까? 이를 구하는 프로그램을 작성하시오. 단, 한 단어가 여러 번 등장하면 등장한 횟수만큼 모두 세어야 한다. (첫 줄에 영어 대소문자와 띄어쓰기로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 띄어쓰기 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열의 앞과 뒤에는 공백이 있을 수도..