본문 바로가기

분류 전체보기

(76)
[JPA] 엔티티 매핑 객체와 테이블 매핑 @Entity @Entity가 붙은 클래스는 JPA가 관리하는 엔티티라 한다. @Entity 속성 name : JPA에서 사용할 엔티티 이름을 지정한다. (기본값 : 클래스명) 주의 - 기본 생성자 필수 (파라미터가 없는 public 또는 protected 생성자) - final 클래스, enum, interface, inner 클래스는 사용할 수 없다. - 저장할 필드에 final을 사용할 수 없다. @Table @Table은 엔티티와 매핑할 테이블을 지정한다. 속성 name : 매핑할 테이블 이름 (기본값 : 엔티티 이름을 사용) 속성 catalog/schema : 데이터베이스 catalog/schema 매핑 속성 uniqueConstraints(DDL) : DDL 생성 시에 유니..
[JPA] 영속성 컨텍스트(Persistence Context)란? 영속성 컨텍스트란? 영속성 컨텍스트란 "엔티티를 영구적으로 저장하는 환경"을 의미하며 눈에 보이지 않는 논리적인 개념이다. 엔티티 매니저를 통해 영속성 컨텍스트에 접근이 가능하다. public class JpaMain { public static void main(String[] args) { EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello"); EntityManager em = emf.createEntityManager(); ... } } 엔티티의 생명주기 비영속 (new/transient) : 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태 // 객체를 생성한 상태(비영속) Member member = new Membe..
[노드교과서] 섹션 15. 16장 AWS 서버리스(S3+Lambda) 사용하기 16.1 서버리스 1. 서버리스 컴퓨팅 이해하기 ⇒ 서버리스는 영어로 'serverless'이다. 'server(서버) + less(없는)' 이지만, 사실 서버가 없다는 것이 아니다. 클라우드 서비스가 대신 관리함으로 개발자/운영자가 서버를 관리하는 부담이 줄어든다는 의미이다. - 서버리스 컴퓨팅을 할 때는 AWS ES2나 구글 컴퓨트 엔진(Google Compute Engine : GCE)과는 다르게 WM 인스턴스를 미리 구매하지 않아도 된다. - 단순히 코드를 업로드 한 뒤, 사용량에 따라 요금을 지불하면 된다. (함수처럼 호출할 때만 실행됨, FaaS(Function as a Service) - 24시간 작동할 필요가 없는 서버인 경우, 서버리스 컴퓨팅을 사용하면 필요한 경우에만 실행되어 요금 절약..
[노드교과서] 섹션 14. 15장 AWS에 배포해보기 15.1 서비스 운영을 위한 패키지 1. 실 서비스 배포 준비하기  ⇒ 서비스 개발 후 외부환경인 AWS에 배포준비 과정을 정리   - 서버 실행 관리, 에러 내역관리, 보안 위협 대처 2. morgan  ⇒ 개발용으로 설정된 익스프레스 미들웨어를 배포용으로 전환한다.   - process.env.NODE_ENV를 통해 배포환경인지 배포환경인지를 판단   - 배포 환경일 때는 combined를 사용한다(dev보다 더 많은 사용자 정보를 남김)if (process.env.NODE_ENV === 'production') { app.use(morgan('combined'));} else { app.use(morgan('dev'));} 3. express-session  ⇒ 기존 설정들을 배포용과 개발용으로 분..
apt-get update NO_PUBKEY 오류 PUBKET가 등록되어 있지 않아 발생하는 오류 같다. bitnami@ip-172-26-15-118:~$ sudo apt update Hit:1 http://security.debian.org/debian-security bullseye-security InRelease Get:2 http://repo.mysql.com/apt/debian bullseye InRelease [17.9 kB] Err:2 http://repo.mysql.com/apt/debian bullseye InRelease The following signatures couldn't be verified because the public key is not available: N O_PUBKEY B7B3B788A8D3785C Hit:3..
[노드교과서] 섹션 13. 14장 CLI 프로그램 만들기 14.1 간단한 콘솔 명령어 만들기 1. CLI  ⇒ CLI(Command Line Interface) 기반 노드 프로그램을 제작해보기   - 콘솔 창을 통해 프로그램을 수행하는 환경을 구현하며 반대 개념은 GUI(그래픽 유저 인터페이스)이다.   - 리눅스의 셸이나 브라우저 콘솔, 명령 프롬프트 등이 대표적인 CLI 방식 소프트웨어이다. 2. 콘솔 명령어  ⇒ 노드 파일을 실행할 때 node[파일명] 명령어를 콘솔에 입력한다.   - node나 npm, nodemon처럼 콘솔에서 입력해 어떠한 동작을 수행하는 명령어를 콘솔 명령어라고 한다.   - nodemon, rimraf같인 명렁어는 npm i -g 옵션으로 설치하면 명령어로 사용이 가능하다.   - 패키지 명과 콘솔 명령어를 다르게 만들 수도 있..
[노드교과서] 섹션 12. 13장 실시간 경매 시스템 만들기(서버센트이벤트, 스케줄링) 13.1 프로젝트 구조 갖추기 13.2 서버센트 이벤트 사용하기 ⇒ npm install $ npm i sse socket.io 13.2.1-1. Server-Sent Events (SSE) 서버센트 이벤트란? ⇒ SSE는 서버의 데이터를 클라이언트로 스트리밍하는 기술이다. 웹 표준이며 단방향 통신만을 지원한다. 또한 IE를 제외한 모든 브라우저에서 지원된다. IE를 통한 지원을 하려면 ployfill을 통해 지원이 가능하다. - 기존 서버에서 변경된 데이터를 불러오기 위해선 새로고침이나 ajax 폴링, 외부 플러그인을 이용해야 했다. - 이외에 websocket을 사용할 수 있지만 별도의 서버와 프로토콜로 통신되기 때문에 비용이 많이 든다. - SSE는 기존 HTTP 웹 서버에서 HTTP API만으로 ..
[노드교과서] 섹션 11. 12장 실시간 GIF 채팅방 만들기(웹소켓, Socket.IO) 12.1 웹 소켓 이해하기 1. 웹소켓 이해하기  ⇒ 웹 소켓 : 실시간 양방향 데이터 전송을 위한 기술이다.   - ws 프로토콜 사용 → 브라우저가 지원해야 사용할 수 있다.   - 최신 브라우저는 대부분 웹 소켓을 지원한다.   - 노드는 ws나 Socket.IO같은 패키지를 통해 웹 소켓을 사용할 수 있다.  ⇒ 웹 소켓 이전에는 폴링이라는 방식을 사용했다.   - HTTP가 클라이언트에서 서버로만 요청이 가기 때문에 주기적으로 서버에    요청을 보내 업데이트가 있는지 확인했다.   - 웹 소켓은 연결도 한 번만 맺으면 되고, HTTP와 포트 공유가 가능하며, 성능도 좋은 편이다. 2. 서버센트 이벤트  ⇒ SSE(Server Sent Events)   - EventSource라는 객체를 사용한..