개발(35)
-
20201017 박세진의 갑작스런 호기심! - web server 상에서 thread - port - socket
어느날 문득 대체 이 내가 굴린 web이 어떻게 데이터를 받아서 어디서 함수를 구현하고 기타 등등을 하는지 내가 너무 잘 모르고 있었다는 생각이 들었다. 그래서 되게 짤막하지만 내 호기심을 해결해준 지식을 공유한다. port - 하나의 프로세스 담당. 보통 서버에서 80번 포트를 엽니다. 즉, server는 하나의 포트로만 request들을 처리하고 있는거임. 아니 하나의 프로세스로..? 넘 비효율적인거 아닌가?? (여담으로, client단에서는 가장 높은 port 순으로 하나씩 연다고 한다. 올~) 대신 하나의 port에서 여러개의 socket을 열 수 있고, 그 socket에서 통신을 통한 여러가지 data들이 오고가는 것이다. 그래서... 그 많은 request를 하나의 프로세스로만 처리한다고..?..
2020.10.17 -
20201004 - AWS Certificate 공부중
aws certificate Usability benefits 3개 - aws management console. - aws cli. - aws sdk 각자의 언어로 aws 서비스들 사용할 수 있게하는 것들… we can create resource group for services ———core services———— ec2 = elastic compute cloud - increase or decrease amount of service automatically - server란 말 대신 instance 써라 여기선 - pay as you go - borad selection of hw/sw - global hosting - more in aws.amazon.com/ec2 - security grou..
2020.10.04 -
20200924 - Python Thread pool, Cache, Mocking snowflake cursor
class SFExecutionPool: def __init__(self): self.func_li = [] def add(self, func, **kwargs): self.func_li.append((func, kwargs)) def execute(self): with ThreadPool(len(self.func_li)) as pool: multiple_results = [ pool.apply_async(func=func, kwds=kwargs) for func, kwargs in self.func_li ] results = [res.get() for res in multiple_results] return results 1. Python Thread pool 유명한 사실이지만 python은 싱글 스레..
2020.09.24 -
20200914 - 심심해서 쓰는 글 - 난수 생성 알고리즘
def generate(n): return (a * generate(n-1)+c) % m 컴퓨터는 일정한 규칙을 가지고 그를 통해 output을 출력해내는 존재이다. 하지만 랜덤이라는 것은 일정한 규칙이 있으면 안 된다. 당연한 거 아닌가? 규칙이 있는 순간 랜덤은 랜덤이 아니다. 그렇다면 랜덤처럼 보이게 알고리즘을 짜야한다. 다음 글을 참고하였다:https://evan-moon.github.io/2019/07/14/what-is-random/ 컴퓨터가 만드는 랜덤은 정말로 랜덤할까? 이번 포스팅에서는 에 대해서 한번 이야기 해볼까 한다. 랜덤이란 어떤 사건이 발생했을 때 이전 사건과 다음 사건의 규칙성이 보이지 않는, 말 그대로 로 발생하는 패턴을 이야기한다. 우리가 � evan-moon.github...
2020.09.16 -
20200728 python 관련 사소한 팁
1.@property python을 해본 사람은 누구나 알듯이 public, private같은 접근 제어자가 없다. 그래서 다른 언어에서는 private으로 쓸 것을 변수 앞에 밑줄 두개(__)를 써서, protected는 밑줄 하나(_)를 써서 표현한다. 보통 다른 언어에서 이들을 가져오고 싶거나 세팅하고 싶을 때 get, set 함수를 쓴다. python에서 이를 똑같이 하면 다음과 같다. class Everything: def __init__(self): self.__name = "any name" def get_name(self): return self.__name def set_name(self, new_name:str): self.__name = new_name 하지만 이런 식으로 하면 상당히..
2020.07.28 -
20200715 Asynchronous and Parellel in Golang
요즘 python 의 async 개념을 보면서 별 생각 없었던 golang의 goroutine에 대해 다시 한번 더 생각하게 될 계기를 가질 수 있었다. goroutine이 병렬적 연산인 줄 알았지만 아니었던 것...! 근데 왜 이때까지 병렬인줄 알았나..?!!?!?!? 그럼 내가 여태까지 본 자료들은 무엇인가..?!?! 알고보니 엄청 간단한 것들이었다. 일단 asynchronous한 것과 parellel한 것의 차이점을 알아야 한다. 이건 내 방식대로 설명해보겠다. 다음과 같은 작업을 사람이 한다고 생각하자. 작업1 'golang'을 구글에서 검색 2초 대기 'python'을 구글에서 검색 2초 대기 끝 작업2 'golang'을 종이에 쓰기 2초 대기 'python'을 종이에 쓰기 2초 대기 끝 Syn..
2020.07.15