| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 학습회고
- UMC
- 백준
- 투포인터
- parser
- compiler
- UMC 블로그챌린지
- 최소힙
- boj
- abex_crackme
- c++
- 최대힙
- BST
- 위상정렬
- 백준온라인저지
- abexcrackme
- frontend
- 자바스프링
- UMC10기
- Lexer
- 코테
- 트리
- IT동아리
- 리버싱
- 사이클 판별
- 레지스터
- 자료구조
- 컴파일러
- 코딩테스트
- 스프링부트
- Today
- Total
목록전체 글 (144)
박박공부
💡 What I Learned- 해킹 팁 (netcat, ssh, vm 포트포워딩, docker, 정규표현식)- 리버싱 팁 (확장자, HxD, Ghidra)- 리눅스 기초 (셸, 파일과 디렉터리, 프로세스 생성 및 관리, 환경 변수, 파일 디스크립터, 그룹)- 리눅스 초급 (APT 패키지 관리, 리눅스 네트워크)- 리눅스 메모리 레이아웃- GDB (pwngdb) 사용하기- NASM과 x86 어셈블리어- 함수호출 규약 (Calling Convention) 저번 주차보다는 pawnable 관련된 것들을 많이 배웠고, 처음 보는 친구들도 많았다.처음 봤는데 인상깊었거나, 이미 알던 내용인데 더 알게 되어 중요한 것들 위주로 정리 ↔ VM 포트포워딩과 VSC Remote-SSH ExtensionVM > 머신 ..
Entity Sets 엔티티 집합Entity현실 세계에서 구별 가능한 객체특정 사람, 회사, 이벤트, 식물Entity Set같은 타입의 엔티티들의 집합예: 모든 교수의 집합 → instructorAttribute엔티티를 설명하는 속성들instructor = (ID, name, salary)course = (course_id, title, credits)Primary Key엔티티 집합에서 각 멤버를 유일하게 식별하는 속성의 부분집합ER 다이어그램에서 Entity 집합 표현하기사각형 - Entity Set사각형 안 텍스트 - Attributes밑줄 - Primary key 속성!image.pngRelationship Sets 관계 집합Relationship(관계)여러 엔티티 간의 연관!image.pngRel..
프로그래밍 언어에서 SQLSQL만으로 부족한 이유 2가지SQL은 범용 언어의 표현력이 없음 → 재귀적 알고리즘이나 복잡한 반복 개산 불가능비선언적 작업이 불가능함 → 화면에 출력하거나, 사용자 입력받거나 GUI에 결과 보내는 것 불가능따라서 범용 언어 + SQL 같이 씀Accessing SQL프로그래밍 언어에서 SQL을 쓰는 방식 2가지API 방식 (Dynamic SQL)프로그램이 함수 집합을 통해 DB 서버에 연결ex) JDBC(Java), ODBC(C/C++)Embedded SQLSQL 문을 소스 코드에 직접 삽입컴파일 타임에 SQL이 함수 호출로 변환됨;런타임에 그 함수들이 DB API를 통해 실행ex) SQLJ💡API는 런타임에 SQL 문자열을 보내고, Embedded SQL은 컴파일 시점에 S..
Joined Relations 조인 관계조인 연산은 두 릴레이션을 입력받아 하나의 릴레이션을 결과로 반환카테시안 곱에서 조건에 맞는 튜플만 매칭, 결과에 포함될 속성을 따로 지정FROM 절 안에 서브쿼리 표현식으로 사용됨Join의 세 가지 종류Natural JoinInner JoinOuter JoinNatural Join in SQL (자동 JOIN)두 릴레이션에서 공통 속성(이름이 같은 컬럼)의 값이 모두 같은 튜플끼리 매칭공통 컬럼은 결과에 하나만 남음where 로 직접 조인 조건 명시select name, course_idfrom students, takeswhere student.ID = takes.IDnatural join으로 동일 쿼리select name, course_idfrom studen..
SQL 개요역사IBM이 System R 프로젝트에서 Sequel 언어 개발 → SQL 이름 변경변천사: SQL-86 → SQL-89 → SQL-92 → SQL:1999 → SQL:2003상용 DBMS는 SQL-92를 기본으로 하되 각자 확장/독자 기능을 가짐SQL partsSQL은 단순한 Query 언어가 아니라 6개 부분으로 구성됨DML: 조회, 삽입, 삭제, 수정Integrity: 무결성 제약 명세 (DDL의 일부)View definition: 뷰 정의 (DDL의 일부)Transaction control: 트랜잭션의 시작/끝Embedded/Dynamics SQL: 다른 언어에 SQL 삽입Authoriation: 권한 부여DDL Data Definition LanguageDDL이 명세하는 것릴레이션 스..
Attribute (속성, 열/Column)테이블의 각 열각 속성은 특정한 타입(도메인)의 값만 가질 수 있음Tuple (튜플, 행/Row)테이블의 각 행 하나각 튜플은 하나의 실제 데이터 개체를 나타냄Relation (릴레이션)전체 테이블 자체를 릴레이션이라고 함수학적으로 튜플들의 집합임 (중복 행 없음)Relation Schema and InstanceRelation Schema (릴레이션 스키마)릴레이션의 구조/설계도속성들의 이름과 타입을 정의A1, A2, … An 은 속성R = (A1, A2, … An)을 릴레이션 스키마라고 함ex) instructor = (IDm name, dept_name, salary)프로그래밍으로 비유하면 클래스 정의와 비슷거의 변하지 않음Relation Instance ..
보호되어 있는 글입니다.
2026-07-24 개발일지soft delete를 이용한 회원 삭제 구현batch를 통한 완전 삭제시의 Cascade vs SetNull vs 익명화 API 설계 — soft delete학기 중 배운 워크북에서 soft delete 부분을 강조했었기 때문에 회원 탈퇴는 당연히 soft delete 방식을 사용해서 진행해야 했다.💡 soft delete란?회원 탈퇴 등의 민감한 정보의 삭제에 있어 user.status를 ACTIVE에서 WITHDRAWN으로 바꾸고, deletedAt 시각을 기록 → 실제 Row는 DB에서 지우지 않는 방식DELETE ❌ UPDATE ⭕ 그러나 기존 API 설계에서 랜덤 배정 닉네임 수정이 이미 PATCH api/v1/auth/me를 사용중이였다보니 고민이 많았다.HTT..
2026-07-22 개발일지 (2026-08-24 수정 및 내용 보완)실시간 예약 기능이 구현된 reservation 도메인에서 cancel 로직에서 발생하는 동시성 문제 해결 1차 문제 상황 — 예약 취소 시 timeSlot.isAvailable 미복구 버그예약을 취소해도 해당 타임 슬롯이 계속 “예약 불가” 상태로 남아있어서, 취소된 시간대인데도 다른 사용자가 그 슬롯을 다시 예약할 수 없는 버그가 있었음. 원인최초 API 명세서 설계 시, 타임슬롯 조회 로직 (목록 조회 등)이 reservation 테이블과 조인해서 status를 보고 알아서 걸러주는 방식을 통해 간단하게 구현한다고 초기에 생각했었다.그러나 예약 생성 API를 다른 팀원이 맡게 되면서 isAvailable 컬럼을 통해 실제 타임슬롯..
2026-07-10 개발일지공통 에러 응답 체계 구축 (errorCode / AppError / errorHandler / rseponse)문제 상황백엔드 개발자가 5명이기 때문에 도메인 (Reservation, Studio, Auth, User 등..)마다 컨트롤러를 따로 작업하는데, 각자 에러를 던지는 방식이 통일되어있지 않았다.에러 던지는 방식을 통합하지 않은 채로 개발이 진행되면 프론트엔드 입장에서는 엔드포인트마다 에러 응답 형태가 달라서 매번 다른 파싱 로직을 짜야 했고, 성공 응답 실패 응답 모두 { success, code, message, data } 형태로 통일하기로 팀 내 컨벤션을 결정했다.해결 방안에러 방식 통일을 위해 에러 코드의 체계를 먼저 잡았다. 도메인별로 DOMAIN_상태코드..