| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
- font-size
- 클론코딩
- literal
- 문서번호
- Strict
- 당근마켓
- github
- Props
- 으
- 컴포넌튼
- 데이터베이스 #try #이중
- es6
- 0.5px border
- npm
- 타입스크립트
- ES5
- angular
- entity
- 10px
- 1px border
- &연산
- 0.75px border
- TypeScript
- TS
- 전역변수
- ZOOM
- 0.25px border
- 서버리스 #
- jwt
- Websocket
- Today
- Total
목록BE (58)
복잡한뇌구조마냥
데이터베이스에서 트랜잭션(Transaction) 은“하나의 논리적인 작업 단위(Logical Unit of Work)”를 의미합니다.즉, 여러 SQL 작업을 하나의 묶음으로 처리해서모두 성공하면 Commit, 하나라도 실패하면 Rollback 하는 개념이에요.💡 트랜잭션(Transaction) 이란?하나 이상의 SQL 명령어를 하나의 논리적 단위로 묶어서,전부 성공하거나 전부 실패하도록 보장하는 것.예를 들어, 계좌이체를 생각해볼까요? A 계좌에서 10,000원 출금 B 계좌에 10,000원 입금 이 두 작업은 둘 다 성공하거나, 둘 다 실패해야 합니다.만약 출금만 되고 입금이 안 되면 큰일이죠 😅👉 이처럼 데이터의 일관성과 무결성을 보장하기 위해 트랜잭션이 필요합니다.🧩 트랜잭션의 4가지 ACI..
✅ 1. IAM 및 권한 구성1-1) GitHub Actions용 OIDC 공급자 등록콘솔 → IAM → Identity providers → Add providerProvider URL: https://token.actions.githubusercontent.comAudience: sts.amazonaws.com1-2) GitHub Actions용 IAM Role 생성IAM → Roles → Create roleTrusted entity: Web identityProvider: token.actions.githubusercontent.comAudience: sts.amazonaws.com권한: AmazonEC2ContainerRegistryPowerUser이름: GitHubActionsECRAccess..
SQL(Structured Query Language)은 데이터베이스를 정의(Define), 조작(Manipulate), 제어(Control) 하는 데 사용되는 언어입니다.크게 아래 4가지로 분류됩니다 👇📘 1. DDL (Data Definition Language) — 데이터 정의어데이터베이스의 구조(스키마) 를 정의하거나 변경할 때 사용합니다.명령어설명예시CREATE데이터베이스, 테이블, 뷰 등을 생성CREATE TABLE users (id INT, name VARCHAR(50));ALTER테이블 구조 변경 (컬럼 추가/삭제 등)ALTER TABLE users ADD email VARCHAR(100);DROP데이터베이스나 테이블 삭제DROP TABLE users;TRUNCATE테이블의 모든 데이터..
요약약readObject는 사실상 숨은 생성자다.따라서 공격자가 임의로 만든 바이트 스트림을 넣을 수 있다는 전제로 방어적으로 작성해야 한다.원칙:방어적 복사를 가장 먼저 수행불변식 검사 후 위배되면 InvalidObjectException 던지기필요 시 ObjectInputValidation으로 객체 그래프 전체 유효성 검사재정의 가능한 메서드 호출 금지 (생성자와 동일한 원칙)더 안전한 방법: 직렬화 프록시 패턴을 활용하라.1. 왜 readObject가 위험한가?직렬화/역직렬화는 바이트 스트림으로 객체를 주고받는 메커니즘.하지만 공격자는 이 스트림을 임의로 조작해,불변식이 깨진 객체내부 상태가 노출되거나 수정 가능한 객체를 만들 수 있다.즉, readObject는 단순히 “저장된 객체 복원”이 아니라..
요약스레드 스케줄링 정책은 운영체제마다 다르다.잘 작성된 프로그램은 스케줄러의 정책 차이에 영향받지 않아야 한다.Thread.yield()와 스레드 우선순위는 의존해서는 안 되며, 힌트 정도로만 쓰인다.**Busy waiting(바쁜 대기)**은 절대 금물.실행 가능한 스레드 수는 프로세서 수보다 과도하게 많아서는 안 된다.목표: 이식성, 견고성, 성능을 모두 확보하는 프로그램.1. 왜 스레드 스케줄러에 의존하면 안 되는가?스레드 스케줄링은 운영체제마다 정책이 다르다.어떤 JVM에서는 잘 동작하던 코드가 다른 JVM이나 OS에서는 느리거나 멈출 수 있음.→ 즉, 스케줄러에 기대는 프로그램은 이식성이 떨어진다.2. 좋은 프로그램의 특징실행 가능한 스레드 수를 프로세서 수와 비슷하게 유지.스레드는 작업이 있..
✅ 정리 (사용자 이해 + 보강)1. 표준 예외 재사용의 장점가독성: 많은 개발자가 공통된 의미로 이해 가능 → API 사용성이 좋아진다.효율성: 불필요하게 예외 클래스를 늘리지 않아 메모리 사용량/클래스 적재 시간 감소.일관성: “이 상황에선 이 예외”라는 패턴이 잡히면, 코드 독해와 디버깅이 쉬워진다.문서화 편의: 표준 예외는 이미 잘 정의되어 있어 문서에 적기만 해도 충분하다2. 자주 쓰이는 표준 예외예외 클래스사용 상황IllegalArgumentException메서드에 넘긴 인수 값이 부적절할 때IllegalStateException객체의 상태가 메서드 수행에 적합하지 않을 때NullPointerExceptionnull을 허용하지 않는 메서드에 null을 전달했을 때IndexOutOfBoundsE..
요약자바 명명 규칙은 **철자 규칙(Spelling)**과 문법 규칙(Grammatical) 두 가지로 나뉜다.특별한 이유가 없다면 반드시 지켜야 하며, 규칙을 어기면 가독성·유지보수성이 떨어지고 버그가 생기기 쉽다.철자 규칙은 강제적, 문법 규칙은 유연하되 널리 쓰이는 전통을 존중해야 한다.가장 중요한 원칙: 일관성 유지.📌 철자 규칙 (Spelling Conventions) 대상규칙예시패키지전부 소문자, 도메인 이름 역순com.example.project클래스/인터페이스파스칼케이스, 각 단어 대문자 시작ArrayList, HashMap, WordProcessor메서드/필드카멜케이스, 첫 글자 소문자getName, computeHash, count상수(static final)대문자 + 언더스코어MAX..
요약지역변수는 짧게, 필요한 순간에만 선언·사용하라.선언과 동시에 초기화 → 초기화가 어렵다면 정보가 생길 때까지 선언 미루기.반복문에서는 for문/for-each문을 우선 사용해 변수 범위를 최소화.메서드는 짧게 유지 → 지역변수도 자연스럽게 짧은 생존 범위를 갖게 된다.범위 최소화는 가독성, 유지보수성, 안정성을 높이고 버그 발생 가능성을 낮춘다.1. 왜 지역변수 범위를 최소화해야 할까?변수의 생존 기간이 길수록 잘못된 사용 가능성이 높아진다.긴 범위의 변수는 코드 가독성을 해치고, 디버깅과 유지보수에도 불리하다.따라서 변수는 필요할 때 선언하고, 사용 직후 소멸되도록 작성하는 것이 바람직하다.2. 기본 원칙선언과 동시에 초기화대부분의 지역변수는 값을 선언과 동시에 초기화해야 한다.초기화가 어렵다면,..
