전체 글

· Web/Spring
환경IntelliJGradle 3.3.0Java 21에러Project 설정은 모두 자바 21 버전으로 바꿨는데 인식을 못했던 문제intellij 에서 A problem occurred configuring root project 'sbb'.> Could not resolve all artifacts for configuration ':classpath'. > Could not resolve org.springframework.boot:spring-boot-gradle-plugin:3.3.0. Required by: project : > org.springframework.boot:org.springframework.boot.gradle.plugin:3.3.0 > No m..
· docker
환경Mac M1Sonoma 14.0DockerOracle21cdocker 설치homebrew 사용💡 cask 옵션macOS용 GUI 애플리케이션을 설치하고 관리brew install --cask dockerdocker siteInstall Docker Engine Install Docker EngineLearn how to choose the best method for you to install Docker Engine. This client-server application is available on Linux, Mac, Windows, and as a static binary.docs.docker.comColima 설치💡 Colima?최소한의 설정으로 MacOS에서 컨테이너 런타임 환경을 만들..
· CS/OS
막연하게 프로세스는 프로그램이 메모리에 올라가서 실행 중인 상태, 스레드는 프로세스의 하나의 실행 단위 라고 생각해왔다. 동기화나 세마포어, 뮤텍스 .. 등을 다시 한번 되짚어보며 정리의 필요성을 느꼈다. Program 어떤 작업을 위해 실행할 수 있는 파일 Process 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램 메모리 에 올라와 실행되고 있는 프로그램의 인스턴스 운영체제로부터 시스템 자원을 할당받은 작업의 단위 메모리 에 올라와 실행된 프로그램 할당받는 시스템 자원의 예 CPU 시간 운영되기 위해 필요한 주소 공간 Code, Data, Stack, Heap 의 구조로 되어있는 독립된 메모리 영역 프로세스의 독립된 메모리 영역 기본적으로 프로세스당 최소 1개의 스레드 (메인 스레드)를 가지고 ..
· Web/Spring
중고책 판매 사이트 제작 프로젝트를 하던 중, 회원(User)-채팅방(Chat)의 관계를 다대다로 설정해야했다. 처음 생각했던 방법은 @ManyToMany @ManyToMany 다대다 단방향 다대다 관계에서는 기본적으로 두 테이블 사이에 연결 테이블이 들어간다. 그 연결 테이블은 @JoinTable에서 지정해줄 수 있다. 단방향 연결은 연관 관계의 주인(User)에서 joinColumn(내 쪽에서 연결할 컬럼), inverseJoinColumn(상대 쪽에서 연결할 컬럼)을 모두 JoinTable 지정 시에 같이 설정할 수 있다. @Entity @Table(name = "user") public class User { @Id @GeneratedValue(strategy = GenerationType.IDE..
· CS/DB
정의 데이터베이스의 상태를 변화시키기 위해 수행하는 작업 단위이자 한번에 모두 수행되어야하는 일련의 연산 상태를 변화 == SQL 질의어(INSERT, UPDATE, DELETE ... )를 통해 DB에 접근 트랜잭션 성질 (ACID) Atomicity(원자성): 트랜잭션 내 연산은 모두 반영되든지(commit) 아예 하나도 반영되지 않아야한다(rollback). Consistency(일관성): 실행이 성공적으로 완료되면 언제나 일관성있는 데이터베이스 상태를 유지해야한다. Isolation(독립성): 둘 이상의 트랜잭션이 병행 수행될 때, 서로의 연산에 끼어들거나 영향을 주면 안된다. Durability(영속성): 한 번 트랜잭션이 성공적으로 완료되면 해당 결과가 영구적으로 저장되어야한다. Consist..
· CS/DB
정의; DB에서 index란? 추가적인 쓰기 작업과 저장 공간을 활용해 데이터베이스 테이블의 특정 열(데이터)에 대한 검색 속도를 향상시키기 위해 사용되는 데이터 구조 사용 목적 왜? 정의에 나온 것처럼 자주 찾는 데이터의 검색 속도를 향상시키기 위함이다. 언제? 규모가 작지 않은 테이블 INSERT, UPDATE, DELETE가 자주 발생하지 않은 컬럼 JOIN, WHERE 또는 ORDER BY 에 자주 사용되는 컬럼 기본적으로 B 트리로 구현되어있어 정렬되어있다는 전제 하에 이루어지는 이야기 범위 검색이 필요할 때 정렬이 필요할 때 장단점 장점 인덱스에 기록된 데이터에 대한 검색 속도가 향상한다. 동일하게 조회를 사용하는 UPDATE, DELETE의 성능이 향상된다. 단점 일정 공간, 일반적으로 DB..
· Web/Spring
Spring Security 회원가입, 로그인 기능과 같이 인증/인가 작업을 spring security, JWT로 처리해보기로 했다. 이전부터 OAuth 방식으로 인증, 인가를 구현해보고 싶었는데 spring security를 사용하면 filter나 authenticationProvider, manager 같은 객체 생성, 연결이 어렵지 않을 것 같았다. 그래서 도입해보기로 함. spring security 흐름도 의존성 추가 // build.gradle implementation 'org.springframework.boot:spring-boot-starter-security' User User Entity @NoArgsConstructor @Getter @Entity @Table(name = "us..
· TIL
배운 내용 및 정리할 거리 JWT Token 발급 및 spring security 조금 .. 적용 spring security 관련 filter 내용 csrf ?
기넌
흑임자