본문 바로가기

전체 글

(119)
함수형 프로그래밍 함수형 프로그래밍이란? 함수는 인풋만 같으면 다른 요소의 영향을 받지 않고 아웃풋이 항상 안정적으로 출력된다. 감자 튀김을 만들기 위해서, 감자를 깎는 사람, 채써는 사람, 튀기는 사람을 전문적으로 훈련시켜 놓고 그 위치에서 정해진 업무만 시킨다면, 효율성이 오를 수 있다. 인풋으로 고구마를 넣어도 같은 프로세스와 결과 값을 얻을 수 있을 것이다.  마찬가지로, 함수형 프로그래밍도 특정 상황에서 필요한 함수를 꺼내서 사용하여 코드의 효율성을 높일 수 있다.  1. 함수형 언어에서는 변수는 변경되지 않는다. 분류비함수형 프로그래밍함수형 프로그래밍Codepublic class Squint {     public static void main(String args[]) {           for (int i..
AWS - S3 Security User-Based* IAM Policies - which API calls should be allowed for a specific user from IAM Resource-Based* Bucket Policies - Bucket wide rules from the S3 console - allows cross account* Object Access Control List (ACL) finer grain (can be disabled)* Bucket Access Control List (ACL) less common (can be diabled) Note : an IAM principal can assecc an S3 object if* The user IAM permissions ..
AWS SQS What's a queue?  * Fully Managed* Scales from I message per second to 15,000s per second* Default retention of messages: 4 days, maximum of 14 days* No limit to how many messages can be in the queue* Low latency (* Horizontal scaling in terms of number of consumers* Can have duplicate messages (at least once delivery, occasionally)* Can have out of order messages (best effor ordering)    1. SQS ..
AWS Kinesis KINESIS DATA STREAM Kinesis Producer (생략) Kinesis Consumer - Classic* Kinesis SDK* Kinesis Client Library (KCL)* Kinesis Connector Library* 3rd party libraries : Spark, Kafak...* Kinesis firehose* AWS lambda   Kinesis Consumer SDK - GetRecords* Classic Kinesis - Records are polled by consumers from a shard* Each shard has 2 MB total aggregate throughput* GetRecords returns up to 10MB of data (th..
[#혼공] 혼자 공부하는 컴퓨터 구조+운영체제 [Chapter.10] [10-1] 프로세스 개요 프로세스 직접 확인하기 컴퓨터가 부팅되는 순간부터 수많은 프로세스들이 실행됩니다. 윈도우에서는 작업 관리자의 [프로세스] 탭에서 확인할 수 있고, 유닉스 체계의 운영체제에서는 ps 명령어로 확인할 수 있습니다. (%ps -ef) 실제로 확인해보면, 여러분이 실행한 프로세스 외에도 알 수 없는 여러 프로세스가 실행되고 있는 것을 볼 수 있습니다. 사용자가 보는 앞에서 실행되는 프로세스를 포그라운드 프로세스라고 하고, 사용자가 볼수 없는 뒤편에서 실행되는 프로세스를 백그라운드 프로세스라고 합니다. 사용자와 상호작용 없이 묵묵히 정해진 일만 수행하는 백그라운드 프로세스를 유닉스 체계에서는 데몬이라고 부릅니다. 프로세스 제어 블록 모든 프로세스는 실행을 위해 CPU를 필요로 하지만, ..
[#혼공] 혼자 공부하는 컴퓨터 구조+운영체제 [Chapter.09] [09-1] 운영체제를 알아야 하는 이유 운영체제란 프로그램에 필요한 자원을 할당하고, 프로그램이 올바르게 실행되도록 돕는 특별한 프로그램이 바로 운영체제입니다. 즉, 인터넷 브라우저, 게임과 같은 프로그램으로 이해하면 됩니다. 운영체제는 매우 특별한 프로그램이기 때문에 커널 영역이라는 공간에 따로 적재되어 실행되고, 사용자가 이용하는 응용 프로그램은 사용자 영역이라는 곳에서 실행됩니다. 운영체제를 알아야 하는 이유 운영체제가 없다면, 간단한 프로그램이라도 하드웨어를 조작하는 코드를 개발자가 모두 직접 작성해야합니다. 개발자들이 운영체제를 알아야하는 이유는 바로 "문제 해결 능력"과 관련이 있습니다. 운영체제를 깊이 이해하면, 운영체제가 여러분에게 건네는 말을 제대로 이해할 수 있고, 운영체제에 제대로 ..
동시성과 병렬성 동시성 (Concurrency)과 병렬성(Parallelism)에 대해서 예시를 통해서 아래와 같이 설명할 수 있다. 한 식당이 있고, 요리사 A, B, C가 있다. 요리는 라면, 피자, 파스타가 있고, 레시피는 단순하게 아래와 같다고 가정한다. 라면 : 1. 물 끓이기 2. 스프 넣기 피자 : 1. 반죽 2. 토핑올리기 3. 오븐에 넣기 파스타 : 1. 면 끓이기 2. 소스 만들기 3. 조리하기 동시성 요리사 A가 라면 물 끓이기 -> (스위칭) -> 파스타 면 끓이기 -> (스위칭) -> 피자 반죽하기 -> 라면 스프 넣기 ... 이처럼 한 명의 요리사 스위칭하며 여러 작업을 수행할 수 있다. 병렬성 요리사 A가 라면 : 1. 물 끓이기 2. 스프 넣기 요리사 B가 피자 : 1. 반죽 2. 토핑올리기..
코루틴 스스로 메모를 위해서 순서에 대한 맥락이나 두서 없이 코루틴에 대해서 끄젹여 놓은 페이지입니다. 기본 개념을 배우고자 하시는 분은 뒤로 가기를 눌러주세요. :) 파이썬 공식 문서 : https://docs.python.org/ko/3/library/asyncio.html asyncio — Asynchronous I/O Hello World!: asyncio is a library to write concurrent code using the async/await syntax. asyncio is used as a foundation for multiple Python asynchronous frameworks that provide high-performance n... docs.python.org 용어..