65줄짜리 텍스트 파일이 GitHub 124k Stars를 받은 이유 (CLAUDE.md 4원칙)
·
AI
1. AI의 역설 (성능은 올라가지만, 신뢰는 떨어진다.)최근 LLM의 성능은 새로운 모델이 나올 때마다 더 좋아지지만, 실제 AI를 활용하다보면 다음과 같은 상황을 한 번쯤은 직면해봤을 것이다.할루시네이션 (Hallucination) : 아주 그럴듯하게 틀린 정보를 제공하는 문제성급한 일반화 : 모호한 질문에 대해 "알아서" 가정을 세우고 코드를 작성하는 문제복잡도 증가 : 간단히 해결할 수 있는 문제를 수백 줄의 복잡한 코드로 구현하는 문제 이러한 문제는 AI가 못해서 생기는 문제가 아니라, 오히려 모델 성능이 올라갈수록 더 많은 지식을 통해 더 나은 답변을 생성하려고 하기 때문에 발생하는 문제라 생각한다.성능은 올라가는데 신뢰는 오히려 떨어지는 상황이 발생하고 이러한 상황을 "지능의 역설"이라 할 ..
[AWS] FE/BE 배포 아키텍처 (CI/CD) 설계부터 자동화까지
·
Amazon Cloud/Deploy
AWS를 이용해 프론트엔드와 백엔드를 어떻게 배포를 하고 관리를 할 수 있는지에 대해 공부를 한 내용을 바탕으로,각 기능의 세세한 내용보다는 전체적으로 데이터가 어떻게 흐르고 배포가 되는지에 대해 다뤄볼 것이다.1. 한 눈에 보는 전체 설계도목표는 GitHub에 Push를 하면 FE와 BE가 각각 최적의 경로로 자동 배포되는 것이다.인프라 구조를 간략하게 살펴보면,Frontend : S3 + CloudFront(CDN) (서버 없는 확장 구조)Backend : EC2 + ALB(Application Load Balancer) + CodeDeploy (고가용성 무중단 구조)CI/CD : GitHub Actions권한 관리 : IAM Role (각 AWS 서비스가 신뢰할 수 있는 역할 부여)시크릿 관리 : ..
[AWS] EBS(Elastic Block Store) 알아보기
·
Amazon Cloud/EC2
0. 들어가기 전EBS를 살펴보기전에 먼저 Block Store와 Object Store에 대해서 간단하게 비교해보자.S3와 같은 Object Store는 프로그램 등을 설치할 수 없고, 파일만 저장되는 저장소이지만,Block Store는 프로그램 등을 설치할 수 있는 저장소를 의미한다.1. EBS (Elastic Block Store)컴퓨터 본체를 보면 CPU와 램카드, 그래픽카드, SSD, HDD가 다같이 장착되어 컴퓨터가 동작하게 된다.EC2 인스턴스가 연산에 관한(CPU, 메모리 등) 처리를 한다고 한다면, 데이터를 저장하는 역할(SSD, HDD)은 바로 EBS가 한다고 보면 된다.즉, EBS는 클라우드에서 사용하는 가상 하드디스크(HDD)라고 말할 수 있다. EBS는 AWS 클라우드의 Amazo..
[AWS] AMI / Snapshot 개념 알아보기
·
Amazon Cloud/EC2
1. EC2 데이터 백업백업 및 복원은 서버를 사용하는 사람들에게는 필수적으로 알아야할 내용이며, 백업하는 습관은 의무적이라고 할만큼 중요한 습관이다.EC2는 기본적으로 사용을 하면 할 수록 요금이 많이 발생하게 된다. 따라서 절약하기 위해서는 주기적으로 사용하지 않는 EC2를 중지하거나 종료해야 한다.하지만 해당 EC2에 중요한 데이터나 다시 사용할 수 있는 데이터들이 담겨져 있는 경우가 많은데,이러한 백업 및 복원에 대한 유지관리를 편하게 할 수 있는 방법이 AMI 이미지를 통해 EC2의 정보를 저장하고 EBS Snapshot을 통해 데이터를 저장하는 방법이 있다. 이번 글에서는 EBS 스냅샷, AMI에 대해 알아보고, 이를 백업하여 관리하는 방법을 알아볼 것이다.2. 스냅샷(Snapshot)스냅샷(..
[AWS] EC2 개념 살펴보기 (Instance / EBS / AMI)
·
Amazon Cloud/EC2
1. EC2 (Elastic Compute Cloud) 개념EC2란 Amazon Elastic Compute Cloud의 줄임말로 AWS에서 제공하는 클라우드 컴퓨팅을 말한다.👉 독립된 컴퓨터를 임대해주는 서비스라고 이해하면 된다. EC2를 사용하는 이유를 간단하게 살펴보면,서버를 돌리기위해 컴퓨터를 사고 세팅을하고 컴퓨터를 켜놓는 비용 대비, EC2는 몇 분만에 바로 컴퓨터 1대와 같은 기능을 하는 서버를 쉽게 만들 수 있다.초기 구입비용, 세팅비용이 전혀 없고, 사용한 만큼의 비용만 지불하면 된다. 또한 인터넷을 통해 자유롭게 EC2에 접속할 수 있고, 이미지(AMI) 기능도 사용할 수 있다.이미지(AMI) 기능을 간단하게 살펴보면,컴퓨터를 사용하면 프로그램 설치하고, 파일을 저장하고, 설정을 변경..
React 18, 무엇이 달라졌는가
·
프론트엔드/React
1. 새로운 진입점: `createRoot`React 18의 모든 새 기능은 진입점부터 달라졌다. 기존에 17이하 버전에서 사용하던 `ReactDOM.render` 대신 `ReactDOM.createRoot`를 사용하도록 변경이 되었다.// React 17 이하import ReactDOM from 'react-dom';ReactDOM.render(, document.getElementById('root'));// React 18import ReactDOM from 'react-dom/client';const root = ReactDOM.createRoot(document.getElementById('root'));root.render();물론 18 이상의 버전에서도 `ReactDOM.render`을 사용..
리액트 불변성(Immutability), 대체 왜 지켜야 할까?
·
프론트엔드/React
불변성이란?불변성(Immutability)은 말 그대로 "변하지 않는 성질"을 나타낸다. 프로그래밍에서는 한 번 할당된 메모리의 값을 직접 바꾸지 않는 것을 의미한다. 예를 들어 `let a = 1`이라고 선언했을 때, `a = 2`로 재할당하면 숫자 1이 있던 메모리 공간을 바꾸는 게 아니라, 2가 저장된 새 메모리 주소를 a에 연결한다.핵심 한 줄 요약불변성 = 메모리에 있는 값 자체를 건드리지 않는 것. 업데이트가 필요하면 새 값을 만들어서 교체한다.원시 타입 vs 참조 타입자바스크립트 값은 크게 두 종류로 나뉘는데, 이게 불변성을 이해하는 핵심이다.1. 원시 타입(Primitive Type)e.g. `let a = 1;`, `b = a`를 하게 되면 어떻게 될까?a = 1을 할당하면 메모리주소 #..
NeetCode Maximum Subarray (JavaScript), 누적합, Greedy
·
코딩테스트/LeetCode
링크 : https://neetcode.io/problems/maximum-subarray/question문제 설명더보기Given an array of integers nums, find the subarray with the largest sum and return the sum.A subarray is a contiguous non-empty sequence of elements within an array.Example 1:Input: nums = [2,-3,4,-2,2,1,-1,4]Output: 8Explanation: The subarray [4,-2,2,1,-1,4] has the largest sum 8.Example 2:Input: nums = [-1]Output: -1Constraints..
NeetCode Islands and Treasure (JavaScript), BFS
·
코딩테스트/LeetCode
링크 : https://neetcode.io/problems/islands-and-treasure/question문제 설명더보기You are given a m×nm×n 2D grid initialized with these three possible values:1 - A water cell that can not be traversed.0 - A treasure chest.INF - A land cell that can be traversed. We use the integer 2^31 - 1 = 2147483647 to represent INF.Fill each land cell with the distance to its nearest treasure chest. If a land cell cann..
LeetCode Cheapest Flights Within K Stops (JavaScript), Dijkstra + BFS
·
코딩테스트/LeetCode
링크 : https://leetcode.com/problems/cheapest-flights-within-k-stops/description/?envType=problem-list-v2&envId=9id5lube문제 설명더보기There are n cities connected by some number of flights. You are given an array flights where flights[i] = [fromi, toi, pricei] indicates that there is a flight from city fromi to city toi with cost pricei.You are also given three integers src, dst, and k, return the cheap..
LeetCode Perfect Squares (JavaScript), BFS, DP
·
코딩테스트/LeetCode
링크 : https://leetcode.com/problems/perfect-squares/description/문제 설명더보기Given an integer n, return the least number of perfect square numbers that sum to n.A perfect square is an integer that is the square of an integer; in other words, it is the product of some integer with itself. For example, 1, 4, 9, and 16 are perfect squares while 3 and 11 are not.Example 1:Input: n = 12Output: 3Explanation..
LeetCode Count of Interesting Subarrays (JavaScript), 누적합, 해시맵
·
코딩테스트/LeetCode
아래 문제를 먼저 보고 오시는걸 추천드립니다!https://kuh97.tistory.com/entry/LeetCode-Subarray-Sum-Equals-K-JavaScript-%EB%88%84%EC%A0%81%ED%95%A9링크 : https://leetcode.com/problems/count-of-interesting-subarrays/description/?envType=daily-question&envId=2025-04-25문제 설명더보기You are given a 0-indexed integer array nums, an integer modulo, and an integer k.Your task is to find the count of subarrays that are interesting..