- [ 데브코스/TIL ]엔티티 매니저와 엔티티 상태2025-01-27 21:42:51영속성 컨텍스트엔티티를 영구 저장하는 환경1차 캐싱, 쓰기 지연, 변경 감지를 통해 영속 로직을 효율적으로 할 수 있게 해줌효율적인 영속 로직 수행을 위해 엔티티는 영속성 컨텍스트에 관리되어야 함엔티티 매니저영속성 컨텍스트를 도와주는 것이 엔티티 매니저엔티티의 상태를 변경하고 영속성 컨텍스트와 상호작용함으로써 영속 로직을 수행하는 역할을 가지고 있음엔티티 상태영속성 컨텍스트와 관련하여 4가지 상태를 가짐비영속, 영속, 준영속, 삭제엔티티 매니저는 persist, merge, remove, close 메서드를 이용하여 엔티티의 상태를 변경할 수 있음엔티티 매니저는 영속성 컨텍스트의 1차 캐시로부터 엔티티를 조회할 수 있고 쓰기 지연 저장소에 있는 쿼리들을 flush하여 DB와 동기화 시킬 수 있음JPQL,..
- [ 데브코스/TIL ]JPA의 ddl 옵션2025-01-24 09:34:39JPA의 ddl-auto 옵션은 각각 어떤 동작을 하고 어떤 상황에서 사용해야 할까?ddl-auto 하이버네이트와 같은 JPA 구현체를 사용할 때 데이터베이스 스키마 관리 제어하는 설정application.yml application.properties 파일에서 설정 가능다양한 값에 따라 데이터베이스 스키마에 대한 다른 동작을 수행 옵션none 데이터베이스 스키마 관련된 어떤 작업도 수행하지 않음. 데이터베이스 스키마를 수동으로 관리하고 싶을 때 유용, 프로덕션 환경에서 주로 사용validate 애플리케이션이 시작될 때 엔티티 매칭이 데이터베이스 스키마와 일치하는지 검증, 스키마 변경은 따로 수행하지 않음. 프로덕션 환경에서 엔티티와 데이터베이스 스키마가 일치하는지 확인하고 싶을 때 사용update 엔티..
- [ 데브코스/영상과제 ]셸 스크립팅 에센스 E01 - 셸. 커널. 터미널. (shell. kernel. terminal)2024-12-19 00:53:12https://youtu.be/9ZLSLi5a6Xw?si=ar49chswNlqSnalN 셸 Shell운영체체(커널)를 감싸는 껍데기운영체제의 서비스를 사용자나 응용프로그램에게 노출하드웨어와 커널이 직접 연결되어있고 셸이 감싸고 있다커널 kernel운영체제의 핵심하드웨어를 직접 제어운영체제로서 서비스를 제공사용자가 직접 통제 불가Exokernel처럼 응용 프로그램이 직접적으로 제어할 수 있게 열어주는 경우도 있으나 흔치않음커널은 사용자가 직접 통제할 수 없어 사용자와 응용프로그램은 셸을 통해 커널을 사용하게됨이때 사용자는 셸의 인터페이스를 통해 사용 셸 인터페이스GUl 그래픽 유저 인터페이스macOS finder, 윈도우 탐색기직관적이고 사용하기 쉽다CLI 커맨드 라인 인터페이스bash shell, zs..
- [ 데브코스/TIL ]스프링 부트 매개변수 이름 인식2024-12-17 16:52:49[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: java.lang.IllegalArgumentException: Name for argument of type [java.lang.String] not specified, and parameter name information not available via reflection. Ensure that the compiler uses the '-parameters' flag.] with root cause매개변수 바인딩이 안된다..@Request..
- [ 데브코스/영상과제 ]REST API가 뭔가요?2024-12-17 16:39:05https://youtu.be/iOueE9AXDQQ?si=UoDTcjnTEA_cXNUz REST API(Representational State Transfer)웹기반 애플리케이션과 서버 간에 데이터를 교환하기 위해 사용되는 아키텍처 스타일클라이언트-서버 구조에서 리소스를 효율적으로 관리하고 전송하는 데 중점을 두며 HTTP 프로토콜을 기반으로 구현과거 SOAP 형식을 대체 REST API와 SOAP의 차이점특징RESTSOAP프로토콜HTTP 기반HTTP, SMTP 등 다양한 프로토콜 지원데이터 포맷JSON, XML 등XML구조간단하고 가볍다복잡하고 무겁다유연성유연하고 다양한 표준 지원엄격한 규격 핵심 개념리소스REST에서 모든 정보를 리소스로 간주리소스는 고유한 URI(Uniform Resource I..
- [ 데브코스/영상과제 ]가장 쉽게 배우는 도커2024-12-16 16:40:54https://youtu.be/hWPv9LMlme8?si=oN_-jjiNDI1BctxFDockerfile도커파일은 이미지를 어떻게 구성하고 설정할지 명령어 형식으로 기술한 파일도커 이미지의 구성 요소와 환경을 정의한 스크립트 파일, 이를 통해 이미지를 자동으로 빌드FROM이미지 기반이 될 부모 이미지RUN컨테이너 내에서 실행할 명령어보통 패키지 설치나 설정 변경 등 수행COPY/ADD로컬시스템에 있는 파일이나 디렉토리를 도커 이미지 안으로 복사할 때 사용copy는 복사, add는 압축풀기, URL에서 파일 가져오기 등 추가 기능WORKDIR현재 작업 디렉토리를 설정CMD / ENTRYPOINT컨테이너가 실행될 때 실행할 기본 명령어 정의cmd는 기본 명령어만 지원 entrypoint는 실행될 명령을 고정..
- [ 데브코스/영상과제 ]도커가 뭐고 왜 쓰는건가요?2024-12-16 12:43:32https://youtu.be/tPjpcsgxgWc?si=Q6CuBS-hxcKqFPer 도커?컨테이너화기술을 활용한 오픈소스 플랫폼애플리케이션을 더 쉽게 배포, 실행, 확장할 수 있도록 도와주는 도구애플리케이션과 그 실행 환경을 일관되게 패키징다양한 환경에서 애플리케이션을 같은 방식으로 실행할 수 있도록 도와줌 도커는 기본적으로 컨테이너라는 가벼운 가상화 환경을 사용해 실행애플리케이션과 그에 필요한 모든 환경(라이브러리, 설정 파일 등)을 포함하고 있어 컨테이너가 실행되는 환경이 무엇이든 애플리케이션이 동일한 방식으로 실행 도커 구성 요소도커 엔진도커 컨테이너를 관리하고 실행하는 기본적인 엔진, 호스트 OS위에서 도커 컨테이너를 실행하고 관리도커 이미지애플리케이션과 그 의존성을 포함한 읽기 전용 템플릿 ..
- [ 데브코스/영상과제 ]가장 쉬운 리눅스 강좌2024-12-16 11:37:33https://youtu.be/tPWBF13JIVk?si=tYLyutw1zCLw72fe 1. 리눅스리눅스는 개발자 친화적인 운영체제시스템을 커스터마이징 할 수 있고 필요에 의해 최적화된 환경을 만들 수 있음윈도우, 맥OS, 모바일 안드로이드, iOS 등은 일반 사용자 end-user 대상으로 만든 운영체제, 시스템 변경 없이 주어진 GUI(Graphic User Interface)를 이용해 사용 리눅스는 주로 CLI(Command Line Interface) 사용 2. 오픈소스리눅스는 오픈소스자신만의 운영체제를 만들거나 기존 운영체제에 기여할 수 있는 오픈소스임자유롭게 사용하고 수정이 가능리눅스를 필요에 따라 개조하고 발전시키면서 우분투, 민트, CentOS 등 같이 무수한 버전이 생성윈도우나 맥OS 같..
- [ 데브코스/영상과제 ]가비지 컬렉터가 뭐하는 건가요? (Feat. 메모리 관리)2024-12-06 08:38:50https://youtu.be/24f2-eJAeII?si=6s_nM0nzJ_bRJojn 메모리 관리가 필요한 이유컴퓨터의 메모리는 제한적으로 효율적으로 관리하지 않으면 프로그램 실행이 느려지거나 시스템이 멈출 수 있음여러 프로그램을 동시에 실행하려면 메모리 자원을 효과적으로 분배해야 함특히 장시간 실행되는 서버 프로그램에서는 메모리 관리가 필수 메모리 누수 Memory Leak사용하지 않는 메모리를 적절하게 해제하지 않으면 메모리 누수 발생메모리 누수가 누적되면 성능저하와 충돌 발생 메모리 관리 방식numanaged language 수동 메모리 관리C, C++ 같은 언어는 개발자가 메모리 할당과 해제를 직접 관리managed language 자동 메모리 관리자바, 파이썬과 같은 언어는 메모리 관리를 가비..
- [ 데브코스/영상과제 ]프로세스는 뭐고 스레드는 뭔가요?2024-12-05 14:58:21https://youtu.be/iks_Xb9DtTM?si=H-O7RXjMW4PKETm6 프로세스(Process)프로그램이 실행되고 있는 상태, 컴퓨터가 실행 중인 작업 단위프로세스는 독립적인 실행단위운영체제는 여러 프로세스를 동시에 실행(멀티태스킹) 가능운영체제가 자원을 할당각 프로세스는 자신의 고유 메모리 공간을 가짐 동시성 Concurrency여러 작업이 동시에 진행되는 것처럼 보이는 상태단일 CPU에서 시간을 분할하여 여러 작업을 번갈아 실행빠르게 작업을 전환하여 사용자는 동시에 실행되는 것처럼 느낌작업을 전환하는 과정 : 문맥 교환 context switching 병렬적 Parallelism여러 작업이 실제로 동시에 실행되는 상태멀티코어 CPU에서는 각 코어가 독립적으로 작업을 수행프로세스 하나에..
- [ 데브코스/영상과제 ]객체지향 프로그래밍이 뭔가요?2024-12-05 14:08:13https://youtu.be/vrhIxBWSJ04?si=3xnfoJgedN0OGaj1 객체지향프로그래밍 방식, 방법론데이터(속성)와 기능(메서드)을 캡슐화하여 객체로 모델링하는 방식현실 세계의 사물과 개념을 소프트웨어로 표현캡슐화, 상속, 다형성, 추상화를 주요 원칙으로 사용 객체데이터와 기능이 클래스로 캡슐화된 컴퓨터 자원의 묶음데이터 : 객체의 상태를 나타냄, 속성, 필드기능 : 객체가 수행할 동작, 메서드객체 생성 : 클래스라는 설계도를 기반으로 실제 사용 가능한 인스턴스를 생성 은닉성객체의 내부구조(필드와 메서드)는 외부로부터 숨기고 필요한 인터페이스만 공개내부필드는 private로 감춰놓고 외부에서 접근 가능한 메서드는 public으로 공개외부에서 직접 데이터에 접근하거나 수정하지 못하도록 보..
- [ 데브코스/영상과제 ]깃. 깃허브. 기초개념 잡아드림2024-12-05 12:32:53https://youtu.be/YFNQwo7iTNc?si=WEIW_uvyYke6aQC4Git 분산 버전 관리 시스템으로 소스 코드 변경 내역을 관리하고 협업을 효율적으로 지원모든 개발자는 로컬 컴퓨터에 프로젝트의 전체 히스토리를 저장하므로 네트워크 연결 없이도 작업 가능여러 사람이 동시에 작업할 수 있도록 브랜치와 병합 기능을 지원 GitHub깃을 기반으로 하는 클라우드 호스팅 서비스소스코드 저장소를 관리하고 개발자들이 협업할 수 있는 플랫폼을 제공소스코드를 클라우드에 저장하여 어디서나 접근 가능한 원격저장소(Remote Repository)가 있다 Git과 GitHub의 차이 GitGithub역할분산 버전 관리 도구Git을 기반으로 한 클라우드 호스팅 서비스설치 여부로컬에 설치하여 사용웹 기반 서비스로..