| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- &연산
- angular
- TS
- 0.5px border
- es6
- font-size
- 10px
- 으
- github
- 당근마켓
- Props
- Websocket
- entity
- ES5
- 0.75px border
- TypeScript
- 데이터베이스 #try #이중
- 컴포넌튼
- 전역변수
- 0.25px border
- 타입스크립트
- 1px border
- Strict
- 문서번호
- ZOOM
- 클론코딩
- 서버리스 #
- npm
- jwt
- literal
- Today
- Total
목록전체 글 (166)
복잡한뇌구조마냥
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. 기본 원칙선언과 동시에 초기화대부분의 지역변수는 값을 선언과 동시에 초기화해야 한다.초기화가 어렵다면,..
인텔리제이 작업 도중 패키지 표기가 이상하게 변해서 당황했던 적이 있다.패키지 표기 설정을 변경하니까 해결 됨폴더 이름이 난해하고 만들기도 번거로워져서 당황...;; 상위 메뉴에 Appearance → Flatten Packages 를 체크 풀었더니 해결되었습니다.어쩌다 눌렸는지는 모르겠는데, 혹시나 패키지 이름이 변경되어 당황스러우신 분은 참고하시면 좋겠습니다. 참고 링크: https://jongtachi.tistory.com/147 [IDE-인텔리제이] '.'으로 구분되는 디렉토리 설정 해제 Compact Middle Packages인텔리제이에서 디렉토리를 만들고 해당 디렉토리에 디렉토리를 추가로 만들었는데 directory.directory 형식으로 만들어짐.. 해제하는 방법을 알려드리겠습니다. 1..
📌 시험 개요구분회차원서접수수험표발급시험일사전점수공개 및 재검토접수합격(예정)자발표SQL 개발자(SQLD)제58회7.21~258.88.23(토)9.12~169.19시험 일정: 2025년 8월 23일 (3회차)시험 장소: 춘천점수: 사전 점수 66점 → 합격 🎉📌 공부 계획 & 자료교재: SQL 자격검정(노랭이)공부 기간: 8월 20일 ~ 8월 22일 (총 3일)공부 방식필기 정리는 따로 안 하고, 암산으로 문제 풀이SQLD 범위까지 교재 전체 1회독SQLD 사이트 모의고사 풀이 → 1시간에 80점 정도📌 시험 당일 후기시험장소: 춘천 (분위기 자체는 무난)난이도 체감: 생각보다 높았음실제 문제 풀면서 *“진짜 어렵다”*는 생각이 들 정도단순 이론만 보고 들어가면 버티기 힘듦정보처리기사 필기에서 S..