(JPA) JPA 프로그래밍 - 영속성 관리 및 시작에 앞서

1. Entity실제 DB의 테이블과 1:1로 매핑 되는 클래스식별자(ID) 존재DB 테이블의 기본키(PK)에 해당하는 식별자를 반드시 가짐상태(데이터)가 변하더라도, 식별자가 같을 경우, 동일한 엔티티로 취급함가변성객체의 상태가 변할 수 있음.비즈니스 로직의 포함데이터 묶음 뿐아니라, 데이터와 관련된 핵심 도메인 로직을 가질 수 있음.핵심 도메인 로직이란, 객체가 가진 데이터를 이용해서 수행하는 비즈니스 규칙객체란 상태(데이터)와 행위(코드)를 하나로 묶어놓은 실체붕어빵 틀(Class)에서 찍어낸 슈 붕어빵(객체 - Object)이라고 생각하면 됨.객체의 구성요소상태(State, Field) : 객체가 가지고 있는 데이터 (차량 색상, 모델명 등등)행위 (Behavior, Method) : 객체가 할수..

(nginx) Nginx 아키텍트

1. Map 모듈 활용 (if 문 대체)Nginx에서 if 지시어는 예상치 못한 동작이나 성능 저하를 유발할 수 있어 사용을 지양해야 함조건에 따른 변수 할당이 필요한 경우 map 모듈을 사용하는 것이 권장됨.사용 예시: Origin 헤더 기반 CORS 동적 설정http 컨텍스트 내에 map을 정의하여 조건부 변수를 생성http { # $http_origin 값에 따라 $cors_origin 변수 매핑 map $http_origin $cors_origin { default "null"; # 기본값: 차단 "~^https://(www|api)\.example\.com$" "$http_origin"; # 자..

(nginx) nginx 운영

구조: sites-available vs sites-enabled 실무 환경(Ubuntu/Debian 등)에서는 설정 파일을 체계적으로 관리하기 위해 두 개의 디렉토리를 사용함.대기실 vs 무대 관계라고 생각하면 편함 1. 구조 설명/etc/nginx/sites-available/ (대기실)실제 설정 파일(.conf)들이 저장되는 곳.여기에 파일을 만들어도 Nginx는 이 파일을 읽지 않습니다. (굉장히 중요함!!!!!)/etc/nginx/sites-enabled/ (무대 위)Nginx가 실제로 읽어 들이는(include) 폴더이곳에는 실제 파일이 아닌, 심볼릭 링크(Symbolic Link, 바로가기)만 둠2. 왜 이렇게 할까? (Why?)사이트를 잠시 내려야 할 때, 설정 파일을 삭제할 필요 없이 링..

(java) JPA, Hibernate등의 어노테이션

JPA DB annotation 정리@EmbeddableJPA의 값 타입(Value Object) 임을 나타냄자체 테이블은 없고, 다른 Entity의 테이블 Column로 포함됨@Entity대신 "포함될 존재"라는 뜻@Embeddablepublic class Address { private String city; private String street;}@AllArgsConstructorLombok 어노테이션모든 필드를 파라미터로 받는 생성자 자동 생성불변(immutable) 값 객체 만들 때 유용 -> 생성 시점에 값 고정@AllArgsConstructorpublic class Address { private String city; private String street; /..

(nginx) nginx 심화

[Part 1] Nginx 문법: 지시어(Directive)와 블록(Block)1. Simple Directive (단순 지시어)형식: 이름 값; (세미콜론 ; 필수!)예시: worker_processes auto;2. Block Directive (블록 지시어)형식: 이름 { ... } (중괄호로 감쌈)역할: 다른 지시어들을 감싸는 역할. Context(문맥)라고 부름.예시:events { worker_connections 1024;}[Part 2] Nginx 전체 구조 (Structure)Nginx 설정 파일(nginx.conf)은 계층 구조로 이루어져 있음.# [Main Context] - 전역 설정user nginx;worker_processes auto;# [Events Context] -..

(nginx) Nginx의 명령어

[Part 1] Nginx 실행의 3가지 상태일꾼(Worker)에게 직접 말하지 않고, 항상 관리자(Master Process)에게 신호를 보냄 1. Nginx 시작 (Start)가장 처음, 서버가 꺼져 있을때 킴명령어 : bash 기준 nginx동작Master Process가 생성, 설정 파일을 읽은 뒤, Worker들 가동 준비아무런 메시지가 안뜨면 성공한 것.2. 설정 파일 문법 검사 ( Test Configuration )설정을 바꾸고 나서는 반드시 반드시 반드시 이 명령어를 먼저 쳐야함.명령어 : nginx -t의미"Test". 설정 파일 (nginx.conf)에 오타 및, 괄호 등 에러 확인을 해주는 명령어아래 두개의 메시지가 떠야 성공한 것nginx: the configuration file..

(FCM) firebase cloud Message

Firebase Cloud Message (FCM) 정리본 포스트는, ios 15.5, android 24 이상을 기준으로 작성된 글임을 우선적으로 밝힙니다.전체적인 Json은 가장 아래를 확인하시면 됩니다.- BE : Kotlin + Springboot- FE(App) : React_Native (Notifee Integration)1. 용도알림 메시지 전송: 사용자에게 보이는 '푸시 알림' 제공 (예: "새로운 댓글이 달렸습니다.")데이터 메시지 전송: 사용자에게 알림을 띄우지 않고, 앱 내부적으로 처리해야 할 데이터(Payload)만 전송 (예: 새 메시지 동기화) - [세부단계 4. 사일런트 푸시 참고]타겟팅(Targeting):단일 기기: 특정 사용자 한 명에게만 전송. (token 사용)기기 ..

(nginx) nginx 기초

Nginx는 OS 위에서 돌아가는 하나의 정교한 데몬(Daemon)이다.1. Nginx의 정의와 탄생 배경정의비동기 이벤트 기반(Event-Driven) 구조를 가진 오픈소스 웹서버이자, 리버스 프록시오픈소스 웹서버 : 소스 코드가 공개가 되어, 누구나 자유롭게 사용, 수정, 배포할 수 있는 웹 서버 소프트웨어 (Apache, Nginx 등)리버스 프록시 : Client의 요청을 받아서 여러 웹 서버로 분산 시키고, 서버의 응답을 Client에게 전달하는 "중개 서버"HTML을 보여주는 프로그램의 역할 뿐만 아니라, 네트워크 트래픽을 관리하고 최적화하는 GatewayGateway : 서로 다른 통신 프로토콜을 사용하는 두 네트워크 간 데이터를 변환하고 연결하는 관문 (HW, SW 둘다 가능) 탄생 배경..

리눅스 (CentOS) 명령어

명령어mkdir디렉토리를 생성하는 명령어touch파일 생성시 사용하는 명령어이미 생성된 파일에 사용시, 최종 수정 시간 변경 date현재 리눅스에 설정된 시간을 출력하는 명령어date 뒤에, 10220630 → 10월 22일 06시 30분으로 설정 한다는 뜻 (현재 아래 사진에서는 반영 X) - 관리자 권한 필요 rdate -p time.bora.net (단, sudo apt install rdate를 해야 사용 가능)타임서버에서 가장 정확한 최근의 시간을 출력 하는 명령어rdate -s time.bora.net (관리자 권한 필요)타임서버에서 가장 정확한 최근의 시간을 설정하는 명령어 cat텍스트 문서를 열람할 수 있는 명령어-n 옵션을 붙여서 행번호 함께 출력 가능 file/dev/sda 를 검색시,..

(JPA) JPA 프로그래밍 - 영속성 관리 및 시작에 앞서

1. Entity실제 DB의 테이블과 1:1로 매핑 되는 클래스식별자(ID) 존재DB 테이블의 기본키(PK)에 해당하는 식별자를 반드시 가짐상태(데이터)가 변하더라도, 식별자가 같을 경우, 동일한 엔티티로 취급함가변성객체의 상태가 변할 수 있음.비즈니스 로직의 포함데이터 묶음 뿐아니라, 데이터와 관련된 핵심 도메인 로직을 가질 수 있음.핵심 도메인 로직이란, 객체가 가진 데이터를 이용해서 수행하는 비즈니스 규칙객체란 상태(데이터)와 행위(코드)를 하나로 묶어놓은 실체붕어빵 틀(Class)에서 찍어낸 슈 붕어빵(객체 - Object)이라고 생각하면 됨.객체의 구성요소상태(State, Field) : 객체가 가지고 있는 데이터 (차량 색상, 모델명 등등)행위 (Behavior, Method) : 객체가 할수..

(nginx) Nginx 아키텍트

1. Map 모듈 활용 (if 문 대체)Nginx에서 if 지시어는 예상치 못한 동작이나 성능 저하를 유발할 수 있어 사용을 지양해야 함조건에 따른 변수 할당이 필요한 경우 map 모듈을 사용하는 것이 권장됨.사용 예시: Origin 헤더 기반 CORS 동적 설정http 컨텍스트 내에 map을 정의하여 조건부 변수를 생성http { # $http_origin 값에 따라 $cors_origin 변수 매핑 map $http_origin $cors_origin { default "null"; # 기본값: 차단 "~^https://(www|api)\.example\.com$" "$http_origin"; # 자..

(nginx) nginx 운영

구조: sites-available vs sites-enabled 실무 환경(Ubuntu/Debian 등)에서는 설정 파일을 체계적으로 관리하기 위해 두 개의 디렉토리를 사용함.대기실 vs 무대 관계라고 생각하면 편함 1. 구조 설명/etc/nginx/sites-available/ (대기실)실제 설정 파일(.conf)들이 저장되는 곳.여기에 파일을 만들어도 Nginx는 이 파일을 읽지 않습니다. (굉장히 중요함!!!!!)/etc/nginx/sites-enabled/ (무대 위)Nginx가 실제로 읽어 들이는(include) 폴더이곳에는 실제 파일이 아닌, 심볼릭 링크(Symbolic Link, 바로가기)만 둠2. 왜 이렇게 할까? (Why?)사이트를 잠시 내려야 할 때, 설정 파일을 삭제할 필요 없이 링..

(java) JPA, Hibernate등의 어노테이션

JPA DB annotation 정리@EmbeddableJPA의 값 타입(Value Object) 임을 나타냄자체 테이블은 없고, 다른 Entity의 테이블 Column로 포함됨@Entity대신 "포함될 존재"라는 뜻@Embeddablepublic class Address { private String city; private String street;}@AllArgsConstructorLombok 어노테이션모든 필드를 파라미터로 받는 생성자 자동 생성불변(immutable) 값 객체 만들 때 유용 -> 생성 시점에 값 고정@AllArgsConstructorpublic class Address { private String city; private String street; /..

(nginx) nginx 심화

[Part 1] Nginx 문법: 지시어(Directive)와 블록(Block)1. Simple Directive (단순 지시어)형식: 이름 값; (세미콜론 ; 필수!)예시: worker_processes auto;2. Block Directive (블록 지시어)형식: 이름 { ... } (중괄호로 감쌈)역할: 다른 지시어들을 감싸는 역할. Context(문맥)라고 부름.예시:events { worker_connections 1024;}[Part 2] Nginx 전체 구조 (Structure)Nginx 설정 파일(nginx.conf)은 계층 구조로 이루어져 있음.# [Main Context] - 전역 설정user nginx;worker_processes auto;# [Events Context] -..

(nginx) Nginx의 명령어

[Part 1] Nginx 실행의 3가지 상태일꾼(Worker)에게 직접 말하지 않고, 항상 관리자(Master Process)에게 신호를 보냄 1. Nginx 시작 (Start)가장 처음, 서버가 꺼져 있을때 킴명령어 : bash 기준 nginx동작Master Process가 생성, 설정 파일을 읽은 뒤, Worker들 가동 준비아무런 메시지가 안뜨면 성공한 것.2. 설정 파일 문법 검사 ( Test Configuration )설정을 바꾸고 나서는 반드시 반드시 반드시 이 명령어를 먼저 쳐야함.명령어 : nginx -t의미"Test". 설정 파일 (nginx.conf)에 오타 및, 괄호 등 에러 확인을 해주는 명령어아래 두개의 메시지가 떠야 성공한 것nginx: the configuration file..

(FCM) firebase cloud Message

Firebase Cloud Message (FCM) 정리본 포스트는, ios 15.5, android 24 이상을 기준으로 작성된 글임을 우선적으로 밝힙니다.전체적인 Json은 가장 아래를 확인하시면 됩니다.- BE : Kotlin + Springboot- FE(App) : React_Native (Notifee Integration)1. 용도알림 메시지 전송: 사용자에게 보이는 '푸시 알림' 제공 (예: "새로운 댓글이 달렸습니다.")데이터 메시지 전송: 사용자에게 알림을 띄우지 않고, 앱 내부적으로 처리해야 할 데이터(Payload)만 전송 (예: 새 메시지 동기화) - [세부단계 4. 사일런트 푸시 참고]타겟팅(Targeting):단일 기기: 특정 사용자 한 명에게만 전송. (token 사용)기기 ..

(nginx) nginx 기초

Nginx는 OS 위에서 돌아가는 하나의 정교한 데몬(Daemon)이다.1. Nginx의 정의와 탄생 배경정의비동기 이벤트 기반(Event-Driven) 구조를 가진 오픈소스 웹서버이자, 리버스 프록시오픈소스 웹서버 : 소스 코드가 공개가 되어, 누구나 자유롭게 사용, 수정, 배포할 수 있는 웹 서버 소프트웨어 (Apache, Nginx 등)리버스 프록시 : Client의 요청을 받아서 여러 웹 서버로 분산 시키고, 서버의 응답을 Client에게 전달하는 "중개 서버"HTML을 보여주는 프로그램의 역할 뿐만 아니라, 네트워크 트래픽을 관리하고 최적화하는 GatewayGateway : 서로 다른 통신 프로토콜을 사용하는 두 네트워크 간 데이터를 변환하고 연결하는 관문 (HW, SW 둘다 가능) 탄생 배경..

리눅스 (CentOS) 명령어

명령어mkdir디렉토리를 생성하는 명령어touch파일 생성시 사용하는 명령어이미 생성된 파일에 사용시, 최종 수정 시간 변경 date현재 리눅스에 설정된 시간을 출력하는 명령어date 뒤에, 10220630 → 10월 22일 06시 30분으로 설정 한다는 뜻 (현재 아래 사진에서는 반영 X) - 관리자 권한 필요 rdate -p time.bora.net (단, sudo apt install rdate를 해야 사용 가능)타임서버에서 가장 정확한 최근의 시간을 출력 하는 명령어rdate -s time.bora.net (관리자 권한 필요)타임서버에서 가장 정확한 최근의 시간을 설정하는 명령어 cat텍스트 문서를 열람할 수 있는 명령어-n 옵션을 붙여서 행번호 함께 출력 가능 file/dev/sda 를 검색시,..