본문 바로가기

Spring

(23)
JPA 기초와 매핑 객체 매핑하기@Entity : JPA 가 관리할 객체를 엔티티라 부른다@Id : DB와 PK와 매핑 할 필드 @Entity public class Member{ @Id private Long id; private String name; ... }create table Member( id bigint not null, name varchar(255), primary key (id) )실습을 위해서 db에 그냥 테이블 만든거야.persistence.xml-JPA 설정 파일 -/META-INF/persistence.xml 위치 -javax.persistence로 시작 : JPA 표준 속성 -hibernamte로 시작 : 하이버네이트 전용 속성 데이터베이스 방언dialect: 방언이게 왜 있냐? JPA는 특정 ..
JPA에 대해서 JPA - Java persistence APIJPA, 객체지향과 RDB 에 대한 고민을 했어. 이런 문제를 해결하기 위해서 JPA를 자바 진영의 ORM 표준기술로 제공하고 있어. ORM은 뭐냐?:Object-Relational Mapping(객체 관계db 매핑)-객체는 객체대로 설계-관계형 DB는 관계형 DB대로 설계-ORM 프레임워크가 중간에서 매핑!-대중적인 언어에는 대부분 ORM 기술이 존재하고 있다. JPA는 애플리케이션과 JDBC 사이에서 동작한다 JPA는 어려운 개념이 아니다. 단순히 JAVA의 객체 -JDBC API - DB의 사이에서 매핑해주는 역할을 해준다. 예를 들어서 MemberDAO에 회원객체를 딱 넘기면(persist) JAP가 분석해서 INSERT 쿼리를 짬. 그리고 JDBC ..
JPA, 객체지향과 RDB JPA 모던 자바 데이터 저장 기술Java : 객체 지향 언어 데이터베이스 : 관계형 DB [ Oracle, MySQL, .. ]이다.지금 시대는 "객체"를 "관계형 DB"에 관리하고 있다.그래서 RDB는 SQL을 짜야 함. SQL! SQL!! SQL!!! SQL 중심적인 개발의 문제-무한 반복, 지루한 코드.. CRUD, CRUD, CRUD 자바 객체 ↔ SQL public class Member{ private String memberId; private String name; ... }멤버 객체를 만들었습니다. 그리고 뭐하겠어요? 쿼리 짜야죠.INSERT INTO MEMBER(MEMBER_ID, NAME) VALUES (); SELECT MEMBER_ID, NAME FROM MEMBER M; UPD..
스프링과 싱글톤(Singleton) 싱글톤? 싱글톤에 대해 이해하기 위해서는 먼저 객체의 동일성과 동등성에 대해 알고 있어야 한다. ▼ 이 글을 참고하면 좋다. tang-co.tistory.com/160 싱글톤이란 클래스의 인스턴스를 딱 한 개만 만드는 거다. 객체가 여러 개 있으면 메모리를 많이 잡아먹으니까. 안에 든 값이 똑같은 건 객체 한 개로 공유한단 뜻이다. 스프링은 모든 빈 들을 싱글톤으로 관리한다. 그 이유는 스프링이 사용되는 곳이 대부분 엔터프라이즈급의 서버 환경이기 때문이다. 이용하는 사람도 많고, 요청 횟수도 엄청 많기 때문이다. 사용자가 10번 요청하면 10개의 객체를, 100번 요청하면 100개의 객체를 만들어줘야 한다. 그래서 스프링은 각각의 빈들을 싱글톤으로 관리하고 여러 스레드에서 이를 공유해서 사용할 수 있도록..
Gradle(그레이들) 설치하기 1. Gradle(그레이들) 설치 그레이들 홈페이지에 접속해서 그레이들을 다운로드 받아주도록 한다. Gradle Build Tool Accelerate developer productivity. Gradle helps teams build, automate and deliver better software, faster. gradle.org Download의 complete를 클릭해서 다운받아주도록 한다 2021년 1월 기준 최신버전은 v6.8이다 * Gradle을 사용하기 위해선 Java version 8 이상이어야 한다고 함 내 PC - C드라이브 처럼 찾기 쉬운 곳에 압축을 풀어주도록 한다. (저는 C:\Program Files\gradle-6.8로 했습니다) 압축을 제대로 풀었다면 [메이븐설치폴더..
메이븐(Maven)과 그레이들(gradle) 빌드 관리 도구? - 프로젝트에서 쓰는 xml이나 jar 파일들이나 java 코드를 JVM나 WAS가 인식할 수 있게 패키징 해주는 빌드 과정을 관리주는 도구이다. - 라이브러리 왕창 써야하는데 빌드 관리 도구가 없다? 일일이 jar파일 다운받아서 설정해줘야한다... 그거 일일이 안하고 그냥 작성하면 자동으로 다운받아서 연결시켜주는 기능이 있다. - 프로젝트 생성, 빌드 설정, 배포 등의 작업을 위한 전용 프로그램이다. ( 빌드 : 소스코드 파일을 실행가능한 소프트웨어 산출물로 만드는 일련의 과정 ) 이 빌드 관리 도구의 대표적인 애들이 바로 Maven과 Gradle이다. 메이븐(Maven) Maven은 빌드 관리 도구로 가장 많이 사용되고 있다. 메이븐(Maven)은 내가 사용하려고 등록한 라이브러리 ..
Spring WebSocekt으로 채팅 기능 구현 HTTP 통신에서 웹 브라우저는 사용자가 무언가를 요청(Request) 하면 서버는 데이터를 뿌려주는(Response) 방식으로 작동한다. 하지만 메신저의 경우는 사용자가 브라우저에 접속한 상태... 그렇다고 언제 대화를 주고 받을지 모르는 상태이다. 이 때 사용할 수 있는 게 WebSocket이다. WebSocket - HTTP 환경에서 전이중 통신(full, duplex, 2-way communication)을 지원하기 위한 프로토콜 1) spring-websocket 라이브러리 추가 우선 라이브러리를 가져와야겠지? pom.xml에 다음 과 같이 spring-websocket 라이브러리를 추가한다. org.springframework spring-websocket ${org.springframewor..

반응형