전체 글 58

[NGINX] SPA 배포 간 문제

Docker로 React를 Nginx 와 함께 배포하였는데, 도커로 배포한 환경에서만 타 페이지로 redirect가 되지 않는 문제가 발생했다. 당시 frontend Dockerfile은 아래와 같았다. # 1단계: Node.js를 사용하여 빌드FROM node:16-alpine as build# 환경 변수 설정 (default는 dev)ARG NODE_ENV=devENV NODE_ENV=$NODE_ENVARG REACT_APP_API_BASE_URLENV REACT_APP_API_BASE_URL=$REACT_APP_API_BASE_URL# 작업 디렉토리 설정WORKDIR /usr/src/app# 종속성 설치COPY package*.json ./RUN npm install# 애플리케이션 빌드COPY . ..

IT 기술/기타 2024.10.18

[프로그래머스] 표편집 - 스택, 인덱스 리스트, 링크드 리스트

처음 문제를 보고, 삭제와 추가가 빈번하니 연결리스트를 사용해야 한다는 생각이 들었지만댓글들을 보니 스택으로도 최적화하여 구현하면 충분히 구현 가능하다고 하여 연결리스트를 사용하지 않고 구현했다. 효율성 테스트를 통과하지 못했던 첫 코드와 개선 코드 두가지를 작성해보겠다  정확성만 통과한 초기버전 코드다.dict 의 start,end 를 관리했고 이동할때 마다 이동할 행의 상태를 검사하며 이동했다.초기 선언을 dict으로 하여 검색 간의 복잡도는 O(1) 이지만, 이동할때마다 반복이 돌며 행 상태를 검사해야하기 떄문에그 부분에 시간을 많이 소요했다. 그래서 그 부분을 고치려고 생각해봤다.def solution(n, k, cmd): q = {i: 'O' for i in range(n)} ..

[프로그래머스] 괄호 회전하기 - 스택,큐

https://school.programmers.co.kr/learn/courses/30/lessons/76502 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr """x 만큼 회전 -> 즉 첫번째를 마지막 원소로 보내기한번씩 회전했을때 올바른 괄호인가 판별하는것올바른 괄호닫힘을 스택으로 쌓음열림이 나왔을떄 스택 pop 이랑 비교해서 맞으면 패스 아니면 outfor x 만큼: popleft 후 append 마지막 for len(deque): """from collections import dequedef solution(s): s = ..

[프로그래머스] 크레인 인형뽑기 게임 - 큐,스

문제 : https://school.programmers.co.kr/learn/courses/30/lessons/64061 """각 열의 데이터를 큐로 만들어서 관리, 0은 필터해버림 빈 공간이니result스택에 move 로 옮김만약 열 큐가 비면(다 옮긴 열이면) passif 큐의 top == 추가원소: stack pop answer += 2else: append 큐.pop"""from collections import dequedef solution(board, moves): # 행,열 치환 new_board = [deque(filter(lambda x: x != 0, row)) for row in zip(*board)] result = [-1] an..

[프로그래머스] 올바른 괄호 - 스택

문제 설명 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 - "()()" 또는 "(())()" 는 올바른 괄호입니다. -  ")()(" 또는 "(()(" 는 올바르지 않은 괄호입니다.'(' 또는 ')' 로만 이루어진 문자열 s가 주어졌을 때, 문자열 s가 올바른 괄호이면 true를 return 하고, 올바르지 않은 괄호이면 false를 return 하는 solution 함수를 완성해 주세요.  제한사항 -  문자열 s의 길이 : 100,000 이하의 자연수 -  문자열 s는 '(' 또는 ')' 로만 이루어져 있습니다.  """1 열림 (-1 닫힘 )뒤부터 볼땐,1 이상이면 끝인듯애초에 짝,홀수 안맞는거 겁나 열리는건 빼고"""de..

[AWS] CodeDeploy 에러 수정

CodeDeploy agent was not able to receive the lifecycle event. Check the CodeDeploy agent logs on your host and make sure the agent is running and can connect to the CodeDeploy server.  CodeDeploy 에서 아래와 같이 초기부터 실행이 안되는 에러를 마주했다. 관련 로그는 CodeDeploy가 배포하는 서버에 접속하여 아래 커맨드로 조회 가능하다.less /var/log/aws/codedeploy-agent/codedeploy-agent.log  내 경우엔 아래와 같이 IAM 에러가 나왔다.2024-10-10T05:33:56 ERROR [codedeploy-..

IT 기술/AWS 2024.10.10

프로젝트 CI/CD 도입기 -7 (CodeDeploy 설정하기-2)

저번에 대략적인 CodeDeploy 설정은 진행하였고, 이제 배포 대상의 EC2 서버에 Agent 설치 및프로젝트 내에 실제 배포를 진행할 Script를 작성할 예정입니다.  1. Agent 설치- 설치 대상 EC2 접속sudo yum update -ysudo yum install -y rubyAWS_REGION=ap-northeast-2 ## 서울 리전일 경우wget https://aws-codedeploy-${AWS_REGION}.s3.${AWS_REGION}.amazonaws.com/latest/installchmod +x ./installsudo ./install auto - 설치 확인sudo service codedeploy-agent status  2. CodeDeploy 설정 스크립트 작성-..

프로젝트 CI/CD 도입기 -6 (CodeDeploy 설정하기-1)

저번 포스트에 Github action을 통해 Git에 push 하면 S3에 프로젝트 파일 업로드 하는 부분까지 진행하였다.이번엔 S3에 파일 업로드 시, EC2에 우리 애플리케이션을 build, deploy 하는 과정을 진행하고자 한다. 이 부분까지 적용되면, 기본 CI/CD 파이프라인 동작은 얼추 완료되고, 그 외 Test 케이스들이나, 서버 분기, 로깅나 실패 시 재시도 등살을 붙이며 안정적인 파이프라인을 꾸며가면 된다. 1. CodeDeploy 애플리케이션 생성1.1 상단 검색하여 CodeDeploy 서비스 들어온 후 , 애플리케이션 생성   1.2 애플리케이션 이름 및 대상 서비스(EC2) 지정 1.3 IAM 역할 생성- CodeDeploy 가 실행하는 DeployGroup에 대해 실행 권한을 ..

프로젝트 CI/CD 도입기 -5 (Github action으로 s3에 업로드)

action 만들기 1. Actions 탭 -> 좌측 New workflow  2. simple workflow  3. workflow 코드 작성- 아래 코드 중 버킷 URL ,region 등은 개인에 맞게 변경해야합니다.- dev 와 main 에 push 이벤트가 발생하면 브랜치에 맞게 s3에 업로드 합니다.* 추후 CodeDeploy 에서 배포를 하기 위하여 S3엔 압축파일로 업로드*name: Deploy to S3on: push: branches: - dev - mainjobs: deploy: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v2..

[AWS] Access key 발급하기

AWS Access key 를 발급하려한다.AWS 밖에서 AWS 서비스를 접근하여 작업하려면 해당 key가 있어야한다. Access key 는 IAM 사용자를 생성하여 그 계정에 Key를 받아야 한다.(root x)IAM 사용자를 생성하여 그 IAM에 권한을 부여한 후 그 권한 내에서 작업을 하도록 하는 일종의 보안 장치이다. 1. IAM -> 사용자 관리 2.  IAM 사용자 생성  3. IAM 사용자에 권한 추가- 여기서 내가 원하는 작업의 권한을 줘야한다. (나중에 줄 수 있음) 4. 검토 및 생성  5. 생성된 IAM 사용자 클릭 후 보안 자격 증명 탭으로 이동 -> 엑세스 키 만들기  6. CLI 엑세스 키 만들기 7. 이름설정 8. 생성된 키 저장하기- 생성된 키는 재 접근이 불가함으로, CS..

IT 기술/AWS 2024.10.08