전체 글

    프로그래머스 - 110 옮기기 문제 (자바)

    https://programmers.co.kr/learn/courses/30/lessons/77886 코딩테스트 연습 - 110 옮기기 0과 1로 이루어진 어떤 문자열 x에 대해서, 당신은 다음과 같은 행동을 통해 x를 최대한 사전 순으로 앞에 오도록 만들고자 합니다. x에 있는 "110"을 뽑아서, 임의의 위치에 다시 삽입합니다. 예를 programmers.co.kr 무슨 알고리즘을 사용해야하는 거지라는 생각과 고민 끝에 다른 사람으 코드를 보고 이해한 문제로 1. 문자에서 110이 나오는 경우 카운트를 세고 stack에는 담지 않는다. 2. stack에서 0이 나오기 직전 위치를 잡는다. 3. 0 직전 위치를 기준으로 110을 카운트한 개수 만큼 넣어준다. ex) 0111111010 -> stack ..

    프로그래머스 - 숫자 게임 문제 (자바)

    https://programmers.co.kr/learn/courses/30/lessons/12987 코딩테스트 연습 - 숫자 게임 xx 회사의 2xN명의 사원들은 N명씩 두 팀으로 나눠 숫자 게임을 하려고 합니다. 두 개의 팀을 각각 A팀과 B팀이라고 하겠습니다. 숫자 게임의 규칙은 다음과 같습니다. 먼저 모든 사원이 무작위로 programmers.co.kr 왜 3단계에 있지 하는 문제 A의 각 값들을 최소한의 차이로 이기도록 B의 사람을 내보내고 숫자를 세면 끝나는데 A [5,1,3,7], B [2,2,6,8] 우선 두배열을 정렬한다. A[1, 3, 5, 7], B[2, 2, 6, 8] 앞에서 부터 비교를 하는데 B의 값이 큰 경우 점수 1점 획득 및 다음 A 와 비교하도록 aIndex++; 하면 끝..

    1. hystrix - [Spring Cloud를 활용한 MSA 기초 온라인 강의 실습]

    Netflix에서 Circuit Breaker Pattern을 구현한 라이브러리이다. Micro Service Architecture에서 장애 전파 방지를 할 수 있다. 마이크로 서비스 아키텍처에서 분산된 서비스간 통신이 원활하지 않은 경우에 각 서비스가 장애 내성과 지연 내성을 갖게하도록 도와주는 라이브러리다. 장애 연쇄 위 그림에서 supplier 서버에 장애가 생겨 항상 Timeout이 발생하는 경우, supplier 서버를 호출한 client 서버는 Timeout이 발생할 때까지 응답이 밀리게 된다. 응답이 밀리는 동안 요청이 계속 쌓여 결국 client 서버까지 요청이 과하게 밀려 장애가 발생할 수 있다. 이러한 상황이 발생하지 않도록 circuit breaker를 두어 장애 전파를 막을 수 있..

    13. application.yml 파일 travis에서 암호화

    상황 S3 관련 비밀 키를 포함하는 yml 파일 깃허브에 그대로 올릴 수 없는 문제 Travis에서 파일을 암호화를 하여 깃허브에 올리고 travis에서 사용할 때는 파일을 복호화 해서 사용하게 만들 수 있습니다. 준비 windwow말고 리눅스나 맥os를 준비 해주세요. window에서 암호화하고 travis에서 사용할려고하면 bad encrypt 오류가 발생합니다. https://github.com/travis-ci/travis-ci/issues/4746 실습 1. 우선 컴퓨터에 루비를 다운로드합니다. sudo apt-get update sudo apt install ruby 2. 루비를 이용해서 travis를 다운로드 합니다. sudo gem install travis 3. travis 로그인 해줍시..

    12. 프론트엔드 리액트 프로젝트를 S3 + CloudFront에 배포하기

    기존 프론트엔드 서버가 만료되면서 서비스를 종료했었는데 백엔드 서버를 운영하고있는 AWS 프리티어 계정을 통해서 S3, CloudFront에 배포하여 서비스를 재개 해보려고 합니다. 과정은 포스팅을 추가 예정이고 급하신 분들은 https://dev.kyoungah.com/2020-07-26-etc-aws-s3-hosting/ 추천드립니다 .ㅎ 앞선 블로그와 차이로 블로그에서는 리액트 프로젝트 스크립트에 aws s3로 보내는 스크립트를 추가해서 처리하는 반면에 저는 github에 psuh 되면 travis ci 에서 테스트 하고 빌드한 뒤 빌드 폴더 내 파일과 폴더를 s3로 전송해주게 됩니다. 저는 우선 해당 과정에서 경험한 문제들을 정리해 보았습니다. 1. aws s3 에서 정적 호스팅을 하기위해서는 b..

    11. [샘플] 이미지 파일 서버에서 AWS S3로 업로드 및 다운로드 받기

    기존 자기소개 페이지가 이미지 업로드시 서버의 특정 폴더에 저장하게 개발되어있다보니 만약 다른 서버를 여러대를 두고 로드밸런싱한다면 이미지가 없어서 문제가 생길 수 있다고 판단 하였으며 이를 위해서 파일을 S3에 업로드하고 S3에 접근해서 해당 파일을 쓸수 있도록 진행할려고 생각하였습니다. 이번 포스팅에서는 자기소개 프로젝트에 바로 적용하는 것이 아니라 샘플 프로젝트를 만들어서 진행을 하면서 우선적으로 적용 방법에 파악하는 것에 초점을 맞췄습니다. 현재 실습 진행은 완료된 상태로 포스팅을 준비중입니다. 관련해서 코드를 먼저 보고 싶으시다면 아래를 참조해주시면 될거같습니다. 다만 아래 코드 뿐만아니라 S3 버킷 만들고 IAM 만들어서 설정을 해주는 등 부가적인 부분이 많습니다. https://github...

    프로그래머스 셔틀버스 문제 (자바)

    크루들을 우선순위 큐에 전부 집어놓고 버스 도착 시간마다 큐에서 버스에 탑승 가능한 인원만큼 빼고는 방법으로 계산하면 된다. 중요한점은 세가지 정도로 1 . 문자열의 시간을 숫자로 변경해서 계산하기 편하게 만들기 2. 마지막에 탑승한 사람 - 1분이 도착해야하는 사람임으로 탑승할때 마다 해당 값을 적용 3. 마지막 버스에 자리가 남는 경우는 해당 버스 도착 시간에 맞춰서 나가면 된다. ps 처음에는 숫자를 문자로 변경할때 3항연산자 2개를 사용했는데 String.format() 메서드를 사용하면 편하다. import java.util.ArrayList; import java.util.List; import java.util.PriorityQueue; // 프로그래머스 셔틀버스 문제 class Soluti..