Latest
-
[알고리즘] 프로그래머스 - 더 맵게
프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 내가 짠 코드 (안돌아간 코드)import heapqdef solution(scoville, K): cnt = 0 heapq.heapify(scoville) if heapq.nsmallest(1, scoville)[0] >= K: return cnt while len(scoville) >= 2: first = heapq.heappop(scoville) second = heapq.heappop(scoville) new = first + (sec..
-
[ACC] 아키텍처 설계 과정
요구사항 및 시나리오 정의수강신청 서비스는 새학기가 시작될 때 사용자가 몰릴 것이다.특정 기간에 사용자 트래픽이 과중된다.트래픽 분산이 필요하다.사용자의 데이터와 서비스의 안정성을 위해 이중화 구성(Multi - AZ)이 필요하다.사용자 1 ~ n 명의 경우 인스턴스 경량화가 필요하다.사용자가 100명이 될 경우, 관리형 서비스가 필요할 것이다.사용자가 1000명이상이 될 경우, 부하를 줄이기 위한 아키텍처 구성이 필요하다. ← 이 부분에 집중아키텍처 설계적은 사용자에 대한 고려[ 고려 사항 ]기본 아키텍처적절한 인스턴스 선택인스턴스 경량화 - 데이터베이스 분리, web/was 분리 → 3 Tier 구축기본 보안 및 모니터링비용 효율적인 구성[아키텍처 구성]단일 퍼블릭 서브넷 → Public과 Priva..
-
[1일 3알고리즘] Day7
1. 덧칠하기https://school.programmers.co.kr/learn/courses/30/lessons/161989 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr# [Lv.1] 덧칠하기def solution(n, m, section): paint = 0 ans = 0 # wall = [i for i in range(n)] for n in section: if n > paint: paint = n + m - 1 ans += 1 retur..
-
[1일 3알고리즘] Day6
1. 로또의 최고 순위와 최저 순위 (추후 Refactor) https://school.programmers.co.kr/learn/courses/30/lessons/77484 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(lottos, win_nums): ans = [] wins = 0 for i in range(len(win_nums)): if lottos[i] in win_nums: win_nums.remove(lottos[i]) wins += 1 cnt = lottos.count(0) lessWin = wins if cnt
-
[1일 3알고리즘] Day5
1. 모의고사 이 문제는 원래 아래와 같이 시도했었다. def solution(answers): ans = [] scoreDic = {} scoreDic.update({1: math1(answers)}) scoreDic.update({2: math2(answers)}) scoreDic.update({3: math3(answers)}) scoreDic = sorted(scoreDic.items(), key=lambda item: item[1], reverse=True) highest_score = scoreDic[0][1] for key, value in scoreDic: if value == highest_score: ans.append(key) else: break return ans def math1..
개발 이야기
-
[구글 클라우드 스터디 잼] 전체 과정 정리
해당 글은 https://www.cloudskillsboost.google/quests/29 의 실습을 완료하고 작성하는 글입니다. 이전 글에서 이미 쿠버네티스 진행과정에서 이미 설명하는 내용 위주로 진행한 것 같아 실습 과정은 간략하게 작성하고, 배운점 위주로 기술해보고자 한다. 또, 글을 여러개로 쪼개는 것보다는 한번에 합치는 것이 나을 거 같아 이번 글에 전부 작성하게 되었다.(나중에 다시 쪼갤지도?) Intro: 입문반 완수! 강의 중간중간 자세한 설명과 실습을 진행했는지 확인하는 체크 과정이 매우 잘 구성되어 있다고 생각했다. 입문 과정이라, 기초적인 내용을 최대한 간단하게 설명해준다는 느낌을 많이 받았고 대부분의 실습이 적힌 시간보다는 빠르게 수행할 수 있었던 점도 좋은 점이었다. Kubern..
-
[구글 클라우드 스터디 잼] Docker 소개
해당 글은 https://www.cloudskillsboost.google/quests/29 의 Docker 소개 실습을 완료하고 작성하는 글입니다. Intro: 도커에 대해 Docker는 애플리케이션을 개발, 출시, 실행하는 데 사용하는 개방형 플랫폼입니다. Docker를 사용하면 인프라에서 애플리케이션을 분리하고 인프라를 관리형 애플리케이션처럼 취급할 수 있습니다. Docker는 코드를 더욱 빠르게 출시, 테스트, 배포하고 코드 작성과 실행 주기를 단축하는 데 도움이 됩니다. 이는 Docker가 커널 컨테이너화 기능을 애플리케이션 관리 및 배포를 지원하는 워크플로 및 도구와 결합하기 때문입니다. Docker 컨테이너는 Kubernetes에서 직접 사용할 수 있으므로 Kubernetes Engine에서..
-
[구글 클라우드 스터디 잼] 수료 시작
Intro: 쿠버네티스와 클라우드 평소 IT 이야기로 접해본 다양한 클라우드 중 하나인 쿠버네티스는 궁금증을 유발하는 신기한 클라우드였다. 나도 이번에 혼자서 인프라를 구성하게 되면서 많은 인프라에 대해 찾아보았고, 당연히 그중 쿠버네티스도 있었다. 이 쿠버네티스의 장점으로 많이 뽑히는 컨테이너 오케스트레이션 기능(컨테이너의 배포, 관리, 확장, 네트워킹 등을 자동화하는 것)이 굉장히 궁금하기도 하고, 나중에 많이 배운 뒤에는 꼭 쿠버네티스로도 인프라를 구성해보고 싶다.(아직은 너무너무 어려운 기술이라고 생각된다.) 또, 카카오, 토스, 배민 등 다양한 기업의 기술 컨퍼런스와 기술 블로그를 자주 보는데,이런 대기업에서도 쿠버네티스를 활용하는 방법에 대한 세션을 많이 소개하고 있었다. ([if(kakao)..
삽질 이야기
-
[트러블슈팅] psql: error: connection to server on socket "/tmp/.s.PGSQL.5432"
사이드 플젝에서 postgre를 사용하고 있기 때문에 오늘도 평소처럼 local로 접속을 시도했다 psql: error: connection to server on socket "/tmp/.s.PGSQL.5432" failed: No such file or directory Is the server running locally and accepting connections on that socket? 에러가 발생했다. 구글링 해보니 몇몇 솔루션이 있어서 일단 postgres 서버를 종료하라고 하는데 $> brew services stop postgres 음~ 왜 postgres를 못찾을까...? brew로 설치했던 것 같은데.. 구글링을 하다보니 다행히도 나만 안돼는 게 아니었다 [PostgreSQL] ..
-
[트러블슈팅] nginx pam_authenticate failed: Authentication failure
nginx 재시작을 할 떄 계속 권한 문제가 발생하였다. AWS에서 사용한 모든 비번을 다 시도해도 안되었다. 심지어 pem키도 쳐보았다. 이 오류는 정말 놀랍게도 앞에 sudo를 안 붙여서 발생했다. sudo 붙이자 마자 모든것이 해결되었다. nginx -t 는 sudo 붙여놓고 왜 그랬을까....?
-
[트러블슈팅] githubAction CICD secret 관련 에러
테스트를 위해 머지한 코드 반영이 전혀 안되고 있었다. 이상해서 커멘드 날려보니 이전에 대충 띄워본 jar가 계속 뜨고 있었다. jar kill하고 다시 액션 돌려도 jar가 안뜬다. 한마디로 서버 자체도 제대로 안뜨고 있었다. 바로 /app에 가서 cat application.log 으로 로그를 확인해보았다. 또 spring이 에러를 뿜었다. 아주 자주 봤던 디비 에러인데, 생각해보니 깃헙 액션에 applicaton 관련 설정이 없었다. gitignore해서 github에 올라가있지도 않기 떄문에 이 문제같았다. 바로 기존 깃헙 액션에 아래와 같이 secret을 가져오는 부분을 추가했다. - name: Copy application-secret env: APPLICATION_SECRET: ${{ sec..
-
[트러블슈팅] AWS CodeDeploy 배포 중 ApplicationStop UnknownError
깃헙 액션을 날렸더니 계속 실패만 뜨는 상황이었다. 자세히 확인해보니 아예 처음부터 에러가 발생하고 있었다. 심지어 unknown이라 벌써 막막했다. 여러 블로그를 보았을때 가장 많이 보이는 글이 ec2 내 codedeploy-agent 미설치였으나, 내 경우는 아니었다. 여전히 모르겠어서 명령어를 통해 codedeploy의 로그를 확인하였다. 자세히 보니 권한 문제로 추정되는 무언가가 보였다. cat /var/log/aws/codedeploy-agent/codedeploy-agent.log 이번에는 다시 블로그들에서 IAM 권한 설정을 한 부분을 자세히 살펴보니, S3관련 설정에서 AmazonEC2RoleForAWSCodeDeploy를 추가하신 분도 있길래 따라서 추가해보았다. 그 뒤 agent를 재시..
-
[트러블슈팅] ec2에서 RDS 접속
프리티어가 끝나 새로 계정을 파면서 모든 인스턴스가 초기화 되어 처음부터 진행하였다. 그런데 workbench는 멀쩡하게 접속이 되는데 EC2에서만 RDS가 접속이 되지 않았다. 1. 보안그룹 내 경우 보안그룹 문제는 아니었다. 모든 트래픽의 모든 ip를 허용해도 접속이 되지 않는 상황이었다. 2. RDS 세부 설정 이전에 이미 퍼블릭 엑세스를 허용하지 않아 n일간 삽질한 경험이 있었고, 역시 이 부분 문제는 아니었다. 3. VPC, RDS 암호 확인 EC2내부에서 mysql 재설치 등 거의 내가 기억하는 모든 설정을 확인하고 재설치 해보았지만, 여전히 효과가 없었다. 그래서 결국 또다시 인스턴스를 엎고 전부 다시 만들었다. 이때 만들었던 보안그룹, VPC, 퍼블릭 IP 등등 모든 것도 같이 삭제한 후 ..