본문 바로가기

전체 글847

AWS CodePipeline으로 ECR 푸시 감지하여 배포하는 방법 1. 개요CI/CD에는 많은 방법들이 존재한다. 깃허브등의 소스코드 레포지터리 master브랜치에 변경이 생기는 순간을 감지하여 자동으로 소스코드를 말아서 S3에 업로드하고, 배포를 트리거하는 등 한번에 모든 배포 과정을 자동화할수도 있고 특정 부분만을 잘라서 자동화시킬 수도 있다. 이는 배포 전략을 짜기 나름인데, 이번 포스팅에서는 ECR로 이미지가 푸시되면 CodePipeline에서 이를 감지하고, ECS에 배포할 수 있도록 자동화하는 방법에 대해 기술한다.참고로, ECS에 관한 자세한 설명은 다루지 않으므로 ECS Fargate형태로 서비스가 실행중이라는 가정하게 진행한다. 2. Flow먼저 간단하게 흐름을 살펴보자면 다음과 같다. ECR푸시 감지 -> 특정 명령어를 통해 빌드 -> ECS에 배포 .. 2020. 8. 24.
SQLAlchemy Many To Many Additional Column 1. 요구 사항이벤트와 비디오는 M:N관계이다. 이벤트에 속한 비디오를 가져올 때 특정 컬럼을 통해 정렬하여 가져와야 한다. 2. 해결 방법아래와 같이 events, videos두개의 테이블이 존재한다고 가정한다.class Event(Base): __tablename__ = 'events' id = Column(BigInteger, primary_key=True, autoincrement=True) title = Column(Unicode(255))class Video(Base): __tablename__ = 'videos' id = Column(BigInteger, primary_key=True, autoincrement=True) name = Column(Unicode(255))만약 여러개의 비디오가.. 2020. 6. 26.
React Native 카카오 로그인 연동하는 방법 1. 환경react-native: 0.61.5 2. iOS 연동먼저 아래의 명령어를 통해 라이브러리를 설치한다. yarn add @react-native-seoul/kakao-login 다음으로 아래의 명령어를 통해 연동해준다. cd ios && pod install 이전 RN은 link를 통해줘야했지만, 이젠 자동 링크를 지원하므로 ios폴더로 진입하여 pod install 명령어만 입력하면 알아서 설치된다. 아무런 이상없이 설치되었다면 위 화면과 같은 결과를 볼 수 있을 것이다. 다음으로 Xcode를 켜서 상단에 있는 File - Open을 누른다.자신의 프로젝트 폴더 내부에 있는 ios폴더로 들어가면 프로젝트명.xcworkspace라는 파일이 존재한다. 해당 파일을 열어준다. Info탭으로 들어간다.. 2020. 5. 25.
SQLAlchemy PostgreSQL JSON컬럼 변경안되는 문제 해결 방법 1. 개요PostgreSQL은 JSON타입의 컬럼을 지원한다. NoSQL처럼 Schemaless 형태의 데이터를 저장할 필요성이 있지만, NoSQL로 가기는 조금 꺼려지는 경우에 사용하기 용이할것같다. SQLAlchemy에서 JSON타입의 컬럼을 다루다보면 이상하게도 값이 업데이트되지 않는 현상이 발생한다. 예를 들어서, class Order(Base): __tablename__ = 'orders' id = Column(Integer, primary_key=True, autoincrement=True) info = Column(JSONB)위와 같은 테이블이 있다고 가정하자. info같은 경우 JSON타입으로 되어있는데 만약 값을 바꾸고 싶다면 일반적으로 아래와 같은 코드를 사용할 것이다. order = .. 2020. 4. 25.
OSX MySQL dyld: Library not loaded 오류 해결 방법 무엇때문이지는 잘 모르겠는데 어제 Homebrew로 gdb를 설치한 이후부터 pipenv도 뻑나고 pip도 뻑나고 뭔가 이상한 상황들이 많이 발생했다. pipenv같은 경우는 그냥 재설치를 했더니 해결이 되었는데 오늘 잠시 디비작업을 하려고 MySQL을 실행했는데 MySQL도 마찬가지로 오류가 발생했다. 오류의 상세 내용은 아래와 같다. dyld: Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib Referenced from: /usr/local/opt/mysql@5.7/bin/mysql Reason: image not found openssl관련 오류로 보여서 일단 brew list를 통해 설치되어있는 목록을 확인했다. 현재 위 사진을.. 2020. 4. 16.
OSX Homebrew MySQL 8에서 5.7로 변경하는 방법 brew install mysql 위와 같이 MySQL을 설치하게되면 8버전이 설치된다. 하지만 나는 기존에 5.7버전을 사용하고 있었으므로 버전을 변경하고 싶었다. 그래서 먼저 단순히 아래의 명령어를 통해 기존 MySQL을 삭제하고 5.7버전을 설치해줬다. brew uninstall mysqlbrew install mysql@5.7 하지만 이런저런 오류들이 계속 발생했다. 정확하게 기억은 안나는데 대충 아래의 오류들이다. 1. Pid관련 오류2. mysql.sock 오류3. --initialize specified but the data directory has files in it. Aborting.4. unknown variable 'mysqlx-bind-address=127.0.0.1' 오류 이것.. 2020. 3. 6.