전체 글 174

[개발] VPC 개념잡기

VPC는 클라우드상에서 제공하는 가상의 네트워크이다. AWS에서 서비스를 사용할 때는 반드시 VPC를 하나 사용해야 하며 VPC를 사용해서 보안성을 증가시킬 수 있다. VPC를 사용하여 설정한 IP대역을 할당받아 사용할 수 있다. 기본적으로 default VPC가 주어지며 아마 172.31.0.0/16으로 설정돼있을 것이다. VPC에 서브넷을 구성할 수 있다. VPC에서 IP영역을 나눠 작은 네트워크로 사용할 수 있다. 보통 서브넷은 기능이나 역할로 구분을 하는데 가장 많이 사용되는 서브넷 패턴은 세 가지 종류가 있다. 1. public 서브넷 2. private 서브넷 3. Intranet Public 서브넷 public 서브넷은 말 그대로 public에 노출되어 있다는 뜻이다. public 서브넷의 ..

[쿠버네티스] 8. EKS 무작정 사용하기 (1)

EKS는 AWS에서 제공하는 쿠버네티스 서비스이다. 쿠버네티스 특성상 마스터노드가 터지면 안되는데 AWS에서 이를 최대한 안 터지도록 고가용성을 보장한다. 또한 관리해야할 여러 요소들을 AWS에서 관리해준다. EKS를 사용하면 클러스터를 구축해서 아래 요소들을 사용할 수 있다. 이용 요금 클러스터를 하나 생성하면 시간당 0.1달러를 지불한다. 프리티어는 따로 없고 쿠버네티스에서 생성한 워커노드에 따라 가격이 달라진다. EC2를 생성한다면 그 스펙에 맞는 EC2비용이 추가로 지불되고 Fargate를 사용한다면 사용한 만큼의 Fargate요금이 지불될 것이다. 권한 설정 ECR에서 한 것처럼 EKS도 액세스키를 위해 권한이 있는 사용자가 필요하다. EKS의 모든 기능을 사용할 수 있도록 권한을 부여하자. 그..

[도커] 14. ECR 무작정 사용하기

지금까지 도커 이미지를 관리하기 위한 원격 저장소로 도커 허브를 사용했다. AWS에서도 동일한 기능을 수행하는 서비스를 제공한다. 바로 ECR이다. ECR을 사용하면 AWS의 다른 기능과 연합하여 더욱 막강한 시너지를 낼 수 있다. ECR을 한번 사용해보자. 이용 요금 https://aws.amazon.com/ko/ecr/pricing/?did=ap_card&trk=ap_card 완전관리형 컨테이너 레지스트리 – Amazon Elastic Container Registry 요금 - Amazon Web Services Amazon Elastic Container Registry(Amazon ECR)는 어디에서나 컨테이너 소프트웨어를 손쉽게 저장, 공유 및 배포할 수 있는 완전관리형 컨테이너 레지스트리입니다..

[알고리즘] 현대모비스 알고리즘 경진대회 2023 본선

현대모비스 알고리즘 경진대회 본선을 다녀왔다. 대회는 삼성 코엑스에서 오프라인으로 열렸고 ICPC와 UCPC같은 알고리즘 대회처럼 티셔츠도 주고 먹을 것도 줬다. 대기업 대회라서 그런지 규모가 어마어마했다. 일반인이 참가할 수 있는 몇 안되는 대회중 하나라서 바로 연차쓰고 참가했다. ㅋㅋ 대회 전 12시에 입장시작인줄 알고 느긋하게 가다가 도착할때 돼서 문자를 보니 집결시간이 12시로 되어있었다. 그래서 삼성역에 도착하자마자 서둘렀는데 길이 복잡해서 많이 헤멨었다. 분명 여러번 왔던 곳임에도 불구하고 올때마다 새로운 것 같다. 그렇게 대회장을 잘 찾아가고 간단한 본인 인증 후에 티셔츠를 갈아입는다. 앞면엔 대회정보 뒷면엔 명언?같은게 적혀있고 소매 양쪽에 각각 현대모비스와 프로그래머스 로고가 적혀있다. ..

[알고리즘] 백준 대회 1등해서 자랑하려고 쓴 글

2023년 7월 6일에 있던 대구 소프트웨어 고등학교 경진대회 open contest에서 ps인생 처음으로 1등을 했다. 대회 공지에 난이도 분포가 브론즈~골드라고 해서 스피드런 할 생각이었는데 운 좋게 성공했다. 하도 문제를 많이 풀다보니 이렇게 된 것 같다. 내 성향이 약간 초반에 불태우는 스타일이라 쉽고 문제수가 적은 셋에 강한 것 같다. 또한 문제가 이해하기 쉬웠던 것도 한 몫한 것 같다. 딱히 더 할 말은 없는데 타임라인이라도 적어야겠다. 00:02 A AC! 항상 대회가 시작하면 A~F까지 창을 모두 띄우고 A번을 켠 후 테스트케이스부터 복사한다. 그 후 문제를 읽으며 코딩을 하는데 이번엔 2분이 걸렸다. 1학년 처리하는데 살짝 꼬였었다. 00:03 B AC! 단순 조건문 분기하는 문제였다. ..

[알고리즘] 현대모비스 알고리즘 경진대회 2023 예선

대학을 졸업한 일반인이 참가할 수 있는 몇 안되는 대회 중 하나인 현대모비스 알고리즘 경진대회에 참가했다. 이 대회가 있는걸 안게 작년이어서 2022년부터 참가했다. 2022년에는 상당히 아쉬움이 많은 대회였지만 1년사이에 정말 쾌적하고 재밌는 대회가 되었다. 2022년엔 7x등을 하여 본선에 참가하지 못했지만 올해는 정말 운좋게 진출했다. 1, 2번을 해결하고 3번 4번은 완탐으로 소량의 부분점수를 받아 41.xx점이 나왔다. 역시 잘하는 고인물들은 거의 학생부에 있어서 일반부는 상당히 청정수였다. 듣기로는 학생부는 3솔하고 4번에서 부분점수를 받는 69점정도가 커트라인이라고 한다. 일반부는 그에 비하면 상당한 차이가 난다. 2번도 상당히 느리게 풀어서 (약 2시간째에 솔브) 불안했으나 다행이다. DP..

[알고리즘] UCPC 2023 Open Contest

더 이상 UCPC에 나갈 수 없어 오픈콘테스트에 참여했다. A 체육은 코딩과목입니다. 예선 A가 가장 쉽다는 것은 전통이다. 그냥 문제에서 주어진 내용을 구현하면 된다. B 물류 창고 MST?생각하다가 트리 DP인가? 하다가 포기했다. https://codeforces.com/contest/1825/problem/D2 랑 비슷하다고 느꼈는데 에디토리얼 보니까 작은거 큰거... C 차량 모듈 제작 얘가 MST문제였다. 그래서 B는 MST가 아닐 것이라는 믿음을 가지고 포기했다. 갑자기 두 원을 포함하는 체인의 길이를 구하는 방법이 생각이 안나서 https://www.youtube.com/watch?v=25ARSNtiN5k 보고 겨우 풀었다. ㅋㅋ 여담으로 예제 3번 그림이 3개의 기어를 연결한거로 헷갈려서..

[알고리즘] 백준 3000솔브 달성

송도고 코드 마스터 2023 대회 문제가 올라오면서 백준 3000솔브를 달성했다. 코드포스나 앳코더같은 다른 ps플랫폼까지 영끌해서 4000솔브는 될 것 같다. 각잡고 알고리즘 문제풀이하기 시작한게 2021년 하반기인거같은데 약 2년만에 이정도까지 성장했다. 개인적으로 알고리즘 문제를 많이 풀면서 변화한 점은 다음과 같다. 1. 개발할때 자꾸 씹덕 자료구조나 알고리즘을 사용하게 된다. (실제로 비트집합, 값/좌표압축 등을 사용했다. 언젠간 세그먼트트리를 사용할 것이다.) 2. 코드포스/앳코더 콘테스트, 백준 대회, 프로그래머스 데브매칭, 기타 기업 대회등 대회란 대회는 모두 나가게 된다. 3. 온 세상이 알고리즘으로 보인다. 4. 알고리즘으로 밤새도록 떠들 수 있다. 이만큼 많이 풀다보니 코딩테스트는 프..

[개발] AWS 아키텍처 구성하기

AWS 아키텍처를 구성할 때 어떻게 구성하면 좋을지 그리고 그게 왜 좋은지 단계별로 알아보자. best practice인지는 모르겠지만 그래도 좋은 아키텍처라고 생각했다. 1단계 EC2에 배포하기 가장 생각하기 쉬운 구성이다. EC2에 우리의 애플리케이션을 띄운 후 Route 53으로 도메인을 걸어주는 방식이다. 가장 간단한만큼 문제점도 많다. 일단 오토스케일링이 안된다. 오토스케일링을 위해 EC2를 띄우면 새로운 도메인을 할당해야 하므로 사용하기 힘들다. 오토스케일링이 안되면 대규모 트래픽을 감당하기 힘들기 때문에 어느정도 사용량이 많아지면 상황이 많이 안좋아진다. 2단계 리버스 프록시 사용하기 이제 오토스케일링을 하더라도 도메인은 리버스프록시에만 할당됐기 때문에 문제는 해결됐다. 이제 오토스케일링도 ..

[암호학] 22. 스테가노그래피

UUIDuuid란 엔트로피가 굉장히 높은 무작위성을 가진 36자리의 문자열이다. 중복될 확률이 굉장히 낮기 때문에 키 값으로 많이 사용된다.1f298256-e337-46d7-b985-f365d395c8fa실제로 파이썬을 사용하여 생성한 uuid이다. 그럼 키 값으로 해당 uuid를 사용하고 전송할 데이터에 키와 신청 여부를 포함하려면 어떻게 할까? 방법 1가장 생각하기 쉬운 방법으로 json을 생각할 수 있다.{ "key": "1f298256-e337-46d7-b985-f365d395c8fa", "value": True }이 방법은 GET일 땐 사용하기 힘들고 용량도 상당히 크다. 방법 2jwt토큰으로 만들어서 토큰을 전송한다.이제 하나의 문자열이 됐으니 GET메소드에서 path variable이나 qu..

기타/암호학 2023.06.08