개발 썸네일형 리스트형 [CS] 동시성과 병렬성 그리고 비동기 안녕하세요 도깨비 개발자입니다.익숙한듯 익숙하지 않은 비동기, 동기 그리고 동시성, 병렬성 개념을 한번에 정리해보겠습니다. 프로그래밍 언어중 싱글 쓰레드인데 비동기 처리를 지원하는 경우와 멀티 쓰레드를 지원하는 경우를 심심치 않게 볼수 있습니다. NodeJs: 8 엔진 기반으로 구동되며, 비동기 I/O와 이벤트 기반 아키텍처FastAPI: Python 기반의 웹 프레임워크로, 비동기 HTTP 서버를 구축하기 위해 설계Java: 정적 타입 언어로 멀티스레딩에 따른 스레드 기반 처리가 강력 최근에 개선된 비동기 기능을 추가한 Python과 Javascript는 async/await으로 비동기 처리를 동기화합니다.Java의 synchronized는 다수의 쓰레드 환경에서 공유 자원 접근에 따라 발생하는 동시.. 더보기 [k8s] outbound ip 고정 k8s에서 외부 API 서비스를 사용시 outbound ip를 고정해야할때가 있습니다.GCP GKE에서는 Clount Nat으로 static-ip 설정을 해주는데요.이때 pod에서 static-ip로 나가는지 확인할 명령어를 주의해서 쓰셔야합니다 지정한 pod의 값에서 outbound ip를 조회하는 명령어입니다kubectl exec -it -- wget -qO- https://checkip.amazonaws.com 아래 명령어를 호출하시면 실행되는 곳의 로컬 ip를 조회합니다...wget -qO- https://checkip.amazonaws.com 이것때문에 CIDR 설정에 애를 먹었네요;; 더보기 [NestJs] 직관적으로 VO 생성하기 안녕하세요 도깨비 개발자입니다.VO(Value Obejct)는 식별자가 없어 값만으로 비교가 가능합니다.Entity는 추적 비용이 발생해 VO도 적절히 사용해줘야하는데요.NestJs에서 조금 더 효과적으로 VO를 사용하는 법을 전달드릴까 합니다. DTO는 데이터 전달 객체입니다.행위보단 상태를 전달받을때 주요 사용됩니다.DTO를 Service에도 사용할수 있지만, Controller에서 End Point별로 생성하고 사용되는 점을 고려하면 사용하기 주저됩니다.그렇다고 Entity를 사용하기 애매할땐 VO를 사용하면 됩니다. 물건을 구매하는 상황을 가정해보겠습니다.장바구니에 상품 정보, 가격 정보, 구매 수량등을 구성한 BasketItem 개념을 고안합니다.class BasketItem { constr.. 더보기 [ORM] N:1을 지향하고, 1:N을 지양해야하는 이유 안녕하세요 도깨비 개발자입니다.쿼리를 직접 짜는 비율을 줄여주는 ORM 기술(Spring의 JPA, Node의 TypeOrm등등)은 요즘 많이 쓰입니다. 엔티티 관점으로 영속성 있는 데이터를 다룰수 있어 저 또한 ORM을 쓰는데요.많이 사용되는 1:N, N:1 릴레이션을 효과적으로 가져갈 방안을 전달드리려 합니다. @Entity()class Customer { @OneToMany(() => Order, (order) => order.customer) orders: Order[];}@Entity()class Order { @ManyToOne(() => Customer, (customer) => customer.orders) customer: Customer;}한 유저는 여러 주문 정보를 가질수 있다.. 더보기 [AWS] ECS ec2로 private subnet에 배포하기 이전에 ecs를 기본 vpc, (public)subnet에 배포했었습니다. 그런데 인터넷으로 outbound가 안되고 있었고, 찾아보니 awsvpc 네트워크 모드를 사용하면 public subnet에 띄워도 인터넷에 outbound가 안된다고 합니다..... https://docs.aws.amazon.com/ko_kr/AmazonECS/latest/bestpracticesguide/networking-outbound.html 인터넷에 연결하기 - Amazon Elastic Container Service 이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를 향상시킬 수 있는 방법에 대해 말씀해 주십시오. docs.aws.amazon.com 네트.. 더보기 [AWS] ECS 테스크 생성이 지연될때 AWS ECS 생성후, 서비스를 통해 테스크를 생성할때 장기간 pending할때가 있습니다. 크게 두 원인을 의심할수 있는데요. 1.EC2 인스턴스 역할이 부여되었는지 ecs는 container instance(ec2)에 ecs agent를 설치해 통신합니다. 이때 ecsIntanceRole이 가진 권한을 설정해줘야합니다. 2.인스턴스 타입이 t2.small이상인지 인스턴스 타입이 낮아 container instance의 용량이 적으면, 테스크 생성이 되지 않습니다. 3.인스턴스 타입을 지원하는 가용 영역을 설정했는지 설정한 인스턴스 타입을 가용 영역별로 지원하지 않을수 있습니다. EC2 인스턴스 유형을 통해 사용 가능 영역을 확인하세요 이상입니다. 더보기 [python] 버전 변경 Mac은 기본으로 python3@3.9가 설치되어 있습니다. 버전 업그레이드시 pyenv, brew를 이용해 새로운 버전 설치로 오버라이딩 하면 자연스레 됩니다. 이번 글에선 수동으로 진행해볼까 합니다. # which python3 /usr/bin/python3 # 왼쪽처럼 출력되면 기본 python설정이 되어 있습니다. #수동 설정을 위해 ~/.zshrc에 alias를 추가해줍니다. vi ~/.zshrc alias python3="python{버전}" # python3를 python{버전}으로 설정하겠다는 statement #갱신 적용 source ~/.zshrc 이상입니다 더보기 [yolov5] ImportError: dlopen(/Users/nojeong-u/Library/Python/3.9/lib/python/site-packages/h5py/_errors.cpython-39-darwin.so, 0x0002) yolov5를 이용해 학습후 export하던중 아래 에러가 발생했다. [yolov5] ImportError: dlopen(/Users/nojeong-u/Library/Python/3.9/lib/python/site-packages/h5py/_errors.cpython-39-darwin.so, 0x0002) 검색해봐도 나오지 않는.... pip package 전부 삭제후, requirements.txt을 재설치해도 안된다. 그러다 에러를 쭉 읽어보니, 아래 문구가 있다 (mach-o file, but is an incompatible architecture (have 'arm64', need 'x86_64')) 터미널 옵션으로 로제타를 기본값으로 했는데, arm64 에러라니..... 만약 위 에러가 발생한.. 더보기 이전 1 2 3 4 ··· 19 다음