분류 전체보기 14

[DB] 트랜잭션 (Transaction)의 4가지 속성 - ACID 란

트랜잭션(Transaction)트랜잭션은 데이터베이스에서 하나의 작업 단위를 의미하며, 정합성을 보장하기 위해 다음 4가지 속성을 만족해야 한다.Actomicity (원자성)더보기트랜잭션은 모두 실행에 성공하거나, 모두 실행에 실패해야 한다.중간에 에러가 발생하면 모든 작업을 롤백(Rollback) 하여 아무 일도 없던 것처럼 데이터를 복원 시켜야 한다.마치 "All or Nothing" 원칙과도 같다. 예시-- 계좌 이체 트랜잭션1. A 계좌에서 -1000원 출금2. B 계좌에 +1000원 입금 중간에 B 계좌 입금이 실패한다면 A의 출금도 취소되어야 한다. Consistency (일관성)더보기트랜잭션은 전후에 데이터의 제약 조건이나 규칙이 항상 만족되어야 한다. 트랜잭션이 완료되면 데이터는 항상 유효..

Database 2025.06.30

Redux 없이 전역 상태 공유하는 법: React Context 실전 적용기

Context란?React에서 Context는 컴포넌트 트리 전체에 데이터를 직접 전달할 수 있는 기능이다. 기본적으로 React는 데이터를 상위 → 하위로 props를 통해 전달하지만, 앱이 커질수록 이 방식은 점점 번거로워지고 복잡해진다. 언제 이런 문제가 생길까?로그인 상태, 테마, 언어 설정 등여러 컴포넌트에서 공통으로 사용하는 데이터가 있을 때부모 → 자식 → 손자 → 증손자...이렇게 계속 props로 상태를 전달해야 할 때이런 상황을 props drilling이라고 부르며, 컴포넌트 구조가 깊어질수록 관리하기 어렵고, 코드도 지저분해지는 문제가 생긴다. 🙋 왜 Context를 써야 했을까?Spotify 클론 프로젝트를 만들면서, 현재 재생 중인 트랙, 재생 여..

React 2025.06.16

Algorithm | [LeetCode 316] Remove Duplicate Letters

문제Given a string s, remove duplicate letters so that every letter appears once and only once. You must make sure your result is the smallest in lexicographical order among all possible results. 주어진 string s에서 중복된 문자를 제거사전 정렬에서 가장 작은 결과를 리턴 (abc 예시입력1Input: s = "bcabc" 출력1Output: "abc" 'b' 와 'c'는 중복된 문자이므로 하나씩만 남기고 제거되지만, 'a'가 가장 앞에 올 경우 사전 순으로 더 작은 문자열이 되기 때문에 'bca'가 아닌 'abc'가 정답이 된다. 입력2Inpu..

Algorithm 2025.06.11

범용 Slider & Card 공통 컴포넌트 리팩토링으로 재사용성과 확장성 높이기

같이 진행하던 사이드 프로젝트를 리팩토링하던 중, 처음부터 눈에 띄는 컴포넌트가 하나 있었다. 바로 카드(Card)와 슬라이더(Slider) 컴포넌트였다. 프로젝트 안에는 앨범, 아티스트, 트랙을 각각 보여주는 카드 컴포넌트가 있었고, 이를 감싸는 슬라이더 컴포넌트 또한 각각 따로 구현돼 있었다. 즉, AlbumCard, ArtistCard, TrackCard... 그리고 AlbumSlider, ArtistSlider, TrackSlider처럼 중복된 컴포넌트가 줄줄이 이어져 있었다. 그렇지만 이 카드들은 사실 거의 동일한 구조를 가지고 있다.이미지가 있고타이틀과 서브타이틀이 있고클릭하면 다른 페이지로 이동하거나버튼 하나가 추가로 붙는 정도였다. 단지, 어떤 API를 받아오는지, 어디로 이동하는지, 버튼..

React 2025.06.09

[React] CRA에서 tsconfig paths 설정으로 절대경로 사용하기: ../.. 지옥 탈출하기

CRA란?**CRA(Create React App)**는React 프로젝트를 빠르게 시작할 수 있도록 도와주는 공식 CLI 툴 CRA가 해주는 일CRA를 사용하면 아래 작업을 자동으로 처리Webpack, Babel, ESLint, Jest 등 복잡한 설정 없이 시작 가능기본적인 개발 서버, 빌드 도구 세팅 자동 완료TypeScript 템플릿, 테스트 환경도 옵션으로 제공파일 하나 치면 바로 React 앱 실행됨 (npx create-react-app my-app) CRA 절대경로 설정이 안되는 이유 React 프로젝트를 진행하면서 상대경로(../../../features/homepage/Card)에 질려 tsconfig.json에 절대경로 alias 설정을 넣었다. { "compilerOptions":..

React 2025.06.07

[AWS Cloud] AWS Certified Solutions Architect(SAA C03) – Associate 취득후기

비전공자인 나는 그동안 컴퓨터 관련 자격증이 전무했다. 자격증이라는 것이 실력을 증명한다기보다는 ‘증서’에 불과하다는 생각이 컸다. 하지만 본격적으로 취업을 준비하면서, 내 경험을 객관적으로 증명할 수 있는 수단이 필요하다는 것을 점점 실감하게 되었고, 그렇게 AWS Solutions Architect – Associate(SAA) 자격증에 도전하게 되었다.다들 어렵지 않다고는 했지만, 막상 강의를 들어보니 생소한 개념이 많았다. 오히려 그 생소함 덕분에 더 많은 호기심이 생기고, 더 넓은 영역으로 시야가 확장되는 계기가 되었다. ☁️ 백엔드 개발자의 눈을 넓혀준 AWS 생태계나는 지금까지 EC2, S3, RDS, Elastic Cache, ECS 등 컴퓨팅 인프라와 운영에 국한된 경험을 주로 쌓아왔다..

Cloud 2025.06.03

[React Native] firebase 연동 삽질기

일단 하루에 한 두시간씩 사이드 프로젝트 개발중인데 인증 기능을 firebase 로 사용하려고 연동하는데 정말 돌아버리는 줄 알았다. chatgpt, xcode, 터미널, 공식 문서까지 대환장 파티였달까.. 별 것도 아닌데 디테일 신경 쓰지 않다가, rn 패키지 버전까지 내릴 뻔하고, 돌고 돌아서 결국 해결했는데 자료가 없어서 공식문서를 믿었다가도 예시를 제대로 해놓지 않고, 잘못 이해해서 이상한 에러범벅이었다. 정신 차리고 다시 문서 읽고, 새로운 방식으로 설정값 넣어줬더니 해결이 되었다. 다시 한 번, 문서를 얼마나 차근차근 읽고 적용해야 하는 지에 대한 중요성을 다시금 깨달았다. expo를 사용하지 않는 설정법임을 참고 바란다. 애초에 rn은 네이티브가 아니어서 firebase 공식 설정 문서가 완..

React Native 2025.05.02

Algorithm | 구간 합 구하기 (백준 11659번)

문제수 N개가 주어졌을 때, i번째 수부터 j번째 수까지 합을 구하는 프로그램을 작성하시오. 입력첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j가 주어진다. 출력총 M개의 줄에 입력으로 주어진 i번째 수부터 j번째 수까지 합을 출력한다. 제한1 ≤ N ≤ 100,0001 ≤ M ≤ 100,0001 ≤ i ≤ j ≤ N 예제 입력5 35 4 3 2 11 32 45 5 예제 출력1291 풀이1import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.IOException..

Algorithm 2025.05.02