본문 바로가기

개발

AWS에서 ECS 도입을 시도하면서 경험한 것들... 이 글을 쓰는 목적 우선, 저는 ECS를 적용하지 않았습니다. 다만, ECS 도입을 시도하면서 굉장히 많은 것들을 알게 되었고 해당 경험을 정리하고 싶었습니다. 서버 개발에 대한 지식이 별로 없는 상태에서 'AWS 공식 문서', 'Medium', '국내의 각종 블로그'를 보면서 ECS 적용법을 공부하려니 어려움을 많이 겪었습니다. 간단하게 적용해보는 예제들은 많이 있었지만 실제 서비스에 적용하려니 막히는 부분이 많았습니다. 그래도 약 80시간의 사투 끝에 어느 정도 구조를 이해하게 되었고, 지금 우리 상황에서는 ECS를 도입하는 것이 좋지 않겠다는 결론에 도달했습니다. 혹시나 비슷한 고생을 하시는 분들에게 도움이 되길 바랍니다. 단, 해당 글에서 ECS에 대한 튜토리얼을 제공하지는 않습니다. 글 중간중간..
Vue 스타일가이드 정도는 읽어봐야겠죠? Vue.js Style Guide의 내용을 정리한 글이다. Vue.js를 메인 프레임워크로 사용하고 있었지만, 해당 문서를 살펴보지 않았다. 최근에서야 스타일가이드를 읽고 '이걸 왜 이제야 읽었을까?'하는 생각이 들었다. 안티패턴을 굉장히 많이 사용하고 있었다. 물론 스타일 가이드에 나온 내용을 무조건 따라야하는 것은 아니지만, 적어도 그 안에 들어 있는 철학을 배우는게 중요하다. 그리고 다른 패턴을 사용할 때는 그만한 합리적인 이유가 있어야한다. 이 가이드에서는 우선순위에 따라 다음과 같은 네가지 카테고리로 내용을 분류하였다. Essential: 반드시 따라야한다. Strongly Recommended: 가능하면 따라야한다. Recommended: 따르면 좋다. Use with Cauti..
vue에서 node_modules모듈 babel 문제해결 Problem Google Analytics를 보는데, 어느 순간 부터 인터넷 익스플로러의 활성사용자수가 0임을 확인하였다. (망할 IE...) 알고보니 우리가 Vue에서 Google Tag Manager를 사용하기 위해 vue-gtm이라는 라이브러리를 쓰고 있는데 해당 라이브러리의 익스플로러 지원이 안됐던 것이다. vue-cli에서 기본 적으로 babel을 활용하여 코드를 IE에서도 사용할 수 있게 트랜스파일 해주지만, node_modules에 속해 있던 라이브러리는 해주지 않아 생기는 문제이다. (안해주는게 효율면에서 낫기도 하다.) How I Solved transpileDependencies 옵션을 활용해 node_modules에 속해있는 라이브러리도 babel을 적용할 수 있다는 것을 알게 되었..
vscode에서 파이썬 개발환경 세팅 vscode 코드 설치 Download Visual Studio Code - Mac, Linux, Windows 파이썬 또는 Anaconda(Miniconda) 설치 파이썬 다운로드 (가장 기본적인 파이썬) 아나콘다 다운로드 (데이터 사이언스, 머신러닝을 위한 각종 라이브러리들이 포함된 파이썬) 미니콘다 다운로드 (아나콘다의 미니 버전, pip과 같은 기본적인 라이브러리들이 설치되어 있다. 미니콘다 설치 이후 원한다면 anaconda에 포함된 모든 라이브러리를 쉽게 설치할 수 있다.) 가상환경 생성 및 활성화 (택 1) virtualenv # virtualenv 설치 pip install virtualenv # 가상환경 생성 virtualenv .venv # 가상환경 활성화 # Mac OS / Linux..
[오픈소스에서 배우다] 믹스인 클래스 활용하기 (Django Rest Framework) 믹스인이란 특정한 클래스에 상속을 통해 새로운 속성이나 새로운 기능을 추가(Mix in)하는 것을 의미한다. 이를 잘 활용한 오픈소스가 있는데 바로 Django Rest Framework이다. Django Rest Framework에서는 GenericAPIView에 생성, 수정 등의 다양한 믹스인 클래스를 추가해 쉽게 API View를 구현할 수 있게 해준다. Django Rest Framework 공식문서 에서 제공하는 예제를 보자. ListModelMixin과 CreateModelMixin을 상속받음으로써 get메소드와 post메소드에서 list와 create라는 메소드를 사용할 수 있다. 이를 통해 개발자들은 본인들이 원하는 기능을 보다 쉽고 간편하게 이용할 수 있다. from snippets.mo..
[오픈소스에서 배우다] Django의 cached_property 파이썬을 대표하는 웹프레임워크 중 하나인 Django에는 다음과 같은 코드가 있다. (코드 직접 확인하기) class cached_property(object): """ Decorator that converts a method with a single self argument into a property cached on the instance. Optional ``name`` argument allows you to make cached properties of other methods. (e.g. url = cached_property(get_absolute_url, name='url') ) """ def __init__(self, func, name=None): self.func =..
파이썬에서 arguments로 *(별표)만 쓴 경우!? fastapi의 코드를 보던 중 함수의 arguments로 *만을 쓴 것을 발견했다. 난생 처음 본 표현법이라서 직접 테스트 해보며 뭔지 알아냈다. ...(생략) def get_param_sub_dependant( *, param: inspect.Parameter, path: str, security_scopes: List[str] = None ) -> Dependant: # param앞에 *를 쓴 것이 보이는가? depends: params.Depends = param.default if depends.dependency: dependency = depends.dependency else: dependency = param.annotation return get_sub_dependant( depends..
파이썬 3.7부터 도입된 dataclasses에 대해 알아보자 Sanic에서 웹소켓을 구현하는 예제를 보던 중 클래스 위에 @dataclass라는 데코레이터가 붙어있었다. from dataclasses import dataclass, field ...(생략) @dataclass class Client: interface: websockets.server.WebSocketServerProtocol = field(repr=False) sid: str = field(default_factory=partial(generate_code, 36)) ...(생략) 찾아보니 파이썬 3.7부터 표준 라이브러리로 등재되었다고 한다. 파이썬 3.6에서 사용하기 위해선 pip install dataclasses를 통해 사용할 수 있다. (파이썬 3.6 지원불가) 이는 데이터 클래스를 보..