전체 글 90

AWS Certified Solutions Architect - Associate 취득 후기

개요주기적으로 함께 사이드 프로젝트를 하는 PM 친구가 최근 AI를 포함한 개발 공부를 시작하더니 갑자기 AWS 자격증 시험을 같이 보자고 권유했고 AWS의 기능을 쭉 제대로 공부해보자는 마음에 흔쾌이 수락하여 시험을 준비하게 되었다.준비 과정시험 준비는 회사를 다니며 약 3주 정도는 AWS 관련 공부, 책 읽기, 노션에 정리하는 방식으로 이론 공부를 했고 1주 정도 문제를 쭉 한 번 본 뒤에 시험을 봤다. 출,퇴근 각각 약 30분 정도 지하철에서 문서를 읽고 회사 퇴근 뒤 야근 유무에 상관없이 항상 2시간씩 공부를 하고 퇴근하는 식으로 준비했다. 주말이라고 딱히 더 공부를 하지는 않았고 주말에도 2시간 정도 공부를 진행했던 것 같다. 작년 8~9월쯤에 앞으로의 미래를 위해 회사를 퇴근한 뒤에도 반드시 ..

aws 2024.08.13

[AWS] 고성능 아키텍처

핵심 AWS 서비스의 성능 최적화컴퓨트컴퓨트 서비스의 목적은 워크로드 수요에 맞춰 신속하고 효율적으로 컴퓨트 리소스를 제공하는 것이다.EC2 인스턴스 타입ec2 인스턴스 파라미터 명세표ECUs: EC2 컴퓨트 유닛, 인스턴스 타입 간 컴퓨트 성능 비교에 유용vCPUs: 인스턴스에 할당된 가상 CPUs 수Physical Processor: 호스트 서버가 사용하는 프로세서 패밀리(예: Intel Xeon E52676v3)Clock Speed: 호스트 서버가 사용하는 클럭 스피드Memory: 인스턴스에 할당된 메모리 양Instance Storage: 로컬 인스턴스 스토어 볼륨의 크기EBS-Optimized Avaliable: 전용 I/O 처리용량에 최적화된 EBS 사용 여부Network Performance:..

aws 2024.08.10

CRLF와 LF

최근 개발도중 파일 비교 작업을 하고있는데 아무리 봐도 같은 파일인데 자바스크립트상에서 비교시 파일이 다르다는 문제가 발생하였다. 기존에는 아래와 같은 코드로 content를 얻어 사용하고 있었는데 디버깅을 위해 utf8 방식의 디코딩을 사용하지 않고 버퍼 상태 그대로 받아 차이점을 비교해보았다.const content1 = fs.readFileSync(file1.fullPath, 'utf8');const content2 = fs.readFileSync(file2.fullPath, 'utf8'); [결과] const content1 = fs.readFileSync(file1Path); const content2 = fs.readFileSync(file2Path); console.log('file1'..

etc 2024.08.08

[AWS]복원성 아키텍쳐

가용성 계산하기가용성이란 애플리케이션이 기대한 성능을 발휘하는 시간의 비율이다. 연간 가용성 비율 비가용 시간99%3일, 15시간, 30분99.9%8시간, 45분99.95%4시간, 22분99.99%52분99.999%5분가용성은 9의 개수로 표현하기도 한다. 예를들어 두 개의 9는 99%를 의미한다.전통적인 애플리케이션과 클라우드 네이티브 애플리케이션의 가용성 차이전통적인 애플리케이션의 가용성이는 기존의 Linux, Windows에서 실행되는 애플리케이션을 의미하며, 이를 AWS에 배포하려면 하나 이상의 EC2 인스턴스를 실행해야한다.예를들어 멀티 AZ 기반 RDS 배포 환경에서 EC2 인스턴스 하나에 의존해서 실행 중인 전통적인 애플리케이션의 경우를 생각해보자 이 애플리케이션의 가용성은 EC2 인스턴스 ..

aws 2024.08.06

Jenkins 빌드 최적화를 위한 멀티프로세스 개선

현재 사용하고 있는 빌더에서 번들링 작업 시 멀티프로세스를 사용하고 있지만, Jenkins 빌드 머신의 24개 코어를 충분히 활용하지 못해 빌드 시간이 오래 걸리는 문제가 발생하고 있다는 사실을 찾아냈다. 기존 빌더에서는 워커 개수를 4개로 하드코딩하여 사용하고 있었기 때문에 발생한 문제이며 이를 개선하기 위해 다음과 같은 작업을 진행했다.CPU 코어 수에 맞춘 워커 개수 증가 먼저 os.cpus().length;를 사용하여 CPU 코어 개수를 얻고, 해당 개수만큼 worker-pool의 개수를 증가시켜 효율을 높였다.const numWorkers = os.cpus().length; 청크 분배 방식 개선 위의 CPU 코어에 맞게 워커 개수를 늘리는 작업 자체는 쉬운 작업이지만 이 때 문제가 발생한 부분이..

aws 2024.08.05

[AWS]데이터 유입, 변환, 분석

AWS Lake Formation조직이 커지면 데이터가 파편화되어 저장되기때문에 분석 업무가 어려워진다 이를 해결하는 방법이 바로 데이터 레이크이다.데이터 레이크는 다양한 구조의 데이터를 수집 및 저장하는 중앙화 데이터베이스이다. 데이터 레이크에 데이터 저장 시 데이터 구조화, 정렬, 복제 등의 작업을 할 필요가 없으며, 데이터 레이크에 있는 그대로 검색, 분석, 시각화, 상관 관계 분석 작업 수행이 가능하다.AWS Lake Formation은 AWS 또는 온프레미스 어디에 있는 데이터여도 수집, 분석할 수 있는 데이터 레이크 서비스이며 또 다른 서비스인 AWS Glue를 이용해 Extract, Transform, Load 작업 즉 데이터 추출, 변환, 로딩 작업을 수행한다. AWS Glue는 Apach..

aws 2024.08.04

[AWS] DNS와 CDN: Route 53과 CloudFront

도메인 네임 시스템(DNS)AWS에서 인터넷 네트워크로 연결되는 서비스 시작 시 해당 시버스를 도메인 네임으로 연결할 수 있으며 Amazon Route 53이 이를 도와주는 서비스이다.네임스페이스IP 주소를 사람이 식별하기 편한 이름으로 변경 시 중복되는 이름이 있으면 안되기떄문에 이러한 인터넷 네임 시스템은 네임스페이스라는 도메인 네임 체계로 관리된다. 인터넷은 퍼블릭, 프라이빗 IP를 통하거나 TLD를 통해 접근할 수 있는 네임스페이스로 구획이 나눠진 가상의 공간이라 말할 수 있다.네임 서버amazon.com과 IP 주소를 연결하는 일은 네임 서버가 담당한다. 모든 컴퓨터는 로컬에서 접근할 수 있는 간단한 네임서버 데이터베이스를 지니며 여기에 localhost와 같은 호스트네임 엔트리, IP 주소가 ..

aws 2024.08.04

React Lane 간단 정리

개요Lane이란 동시성 문제를 해결하기 위해 나온 개념이다. Lane은 어떤 작업을 처리할 때 이를 먼저 시작된 작업을 처리하는 시간순이 아니라 우선 순위에 따라 해당 작업을 먼저 처리할 수 있도록 도와주는 역할을 한다. 현재 react가 렌더링 중이더라도 유저 액션, 애니메이션과 같은 우선순위가 더 높은 작업이 발생된다면 현재 렌더링 과정을 중단하고 우선순위가 높은 작업을 먼저 처리한 뒤 다시 원래 작업하던 곳으로 돌아가 렌더링을 진행할 수 있게 만들어준다.Lane이란react 내부에서 Lane은 아래와 같이 정의되어 있다.const NoLanes: Lanes = /* */ 0b0000000000000000000000000000000const NoLane: La..

frontend 2024.08.03