본문 바로가기

Study

(23)
[JPA] JPA 기본과 매핑 JPA 기본과 매핑 객체 매핑 @Entity : JPA가 관리할 객체 @ID : DB PK와 매핑할 필드 persistence.xml JPA설정 파일 /META-INF 폴더 안에 위치 javax.persistence로 시작 : JPA 표준 속성 hibernate로 시작 : 하이버네이트 전용 속성 jdbc드라이버나 DB속성등을 설정. DB 방언 (Dialect) -> hibernate의 속성중 하나 JPA는 특정 데이터베이스에 종속적이지 않은 기술 각각의 데이터베이스가 제공하는 SQL 문법과 함수가 조금씩 다름. -> 가변 문자 : MySQL은 VARCHAR, Oracle은 VARCHAR2 -> 문자열을 자르는 함수 : SQL표준은 SUBSTRING(), Oracle은 SUBSTR() -> 페이징 : My..
[JPA] JPA를 사용하는 이유 JPA를 사용하는 이유 현 상황 지금 시대는 객체를 관계형 DataBase에 저장한다. 관계형 DB는 SQL을 필수로 사용해야한다. 하지만 비슷한 Query가 수도없이 반복된다. 만약 이미 만들어져 있는 서버에 DTO를 수정해야한다면? 개발한 프로그램의 규모가 크면 클수록 방대한 양의 수정이 필요하게 된다. 객체 vs 관계 언어는 객체지향을 사용한다.(상속,다형성,정보은닉 ...) 데이터는 관계형 DB에 저장한다. -> 패러다임의 불일치 관계형 DB에는 상속관계가 존재하지 않는다(있는 DB도 있긴 하지만 보통 없다.) 프로그램을 설계하고 객체구조를 만들어 놓으면 그 데이터들을 저장하기 위해 객체를 분해해서 관계형으로 다시 설계가 필요하다. 또한 저장된 데이터를 꺼내 쓰기 위해 중간에 Mapping작업이 ..
[JAVA] Wrapper Class 자바에는 기본 자료형(Primitive data type)이 있는데 그에 대한 클래스 표현인 Wrapper Class가 존재한다. 기본 타입 : int, long, float, double, boolean ... 래퍼 클래스 : Integer, Long, Float, Double, Boolean ... 박싱과 언박싱 박싱 : 기본 데이터 타입에 대응하는 wrapper클래스로 만드는 동작 int i = 10; Integer num = new Integer(i); // Boxing 언박싱 : Wrapper 클래스에서 기본 타입으로 변환 Integer num = new Integer(10); int i = num.intValue(); //unBoxing 오토 박싱 편의성을 위해 오토 박싱과 오토 언박싱이 제공..
[JAVA] Call by Value & Call by Reference Call by value & Call by reference Call by value 값에 의한 호출 함수가 호출될 때 메모리 공간 안에서는 함수를 위한 별도의 임시공간이 생성된다. (종료시 반환) Call by value 호출 방식은 함수 호출 시 전달되는 변수 값을 복사해서 함수 인자로 전달한다. 이 때 복사된 인자는 함수 안에서 지역적으로 사용되기 때문에 local value속성을 가진다. 따라서, 함수 안에서 인자 값이 변경되더라도, 외부 변수 값은 변경되지 않는다. Call by reference 참조에 의한 호출 함수 호출 시 인자로 전달되는 변수의 레퍼런스를 전달한다. 함수 안에서 인자 값이 변경되면, 인자로 전달된 객체의 값도 변경된다. 자바의 경우, 항상 Call by value로 값을 ..
[WEB] MVC패턴 Web Application Achitecture는 크게 model1, model2로 나뉜다. Model1 구조 view와 logic을 모두 JSP페이지 하나에서 처리하는 구조 Client로부터 요청이 들어오면 JSP페이지는 java beans나 별도의 service class를 이용해 작업을 처리하고 결과를 출력한다. 한 파일에서 그 기능에 대한 logic과 view를 모두 처리하므로 직관적이다. -> 개발시간단축->개발 비용 감소 비슷한 기능을 수행하는 파일이 있다면 그 오류가 어디서 발생했는지 찾기 힘들다 -> 유지보수, 확장이 어려움 Model2 구조 모든 처리를 JSP에서 하는 것이 아니라 Client의 요청에 대한 처리는 servlet, Logic 처리는 java Class, client에게 ..
[BackEnd] Servlet 실습 & LifeCycle Client가 Server에 무언가 요청을 한다면 그 결과를 Client에게 보여줄 수 있어야 한다. 요청 결과인 응답은 html형태가 되는데 이를 ServletResponse 인터페이스에서 담당한다. ServletResponse안에는 PrintWriter라는 클래스 타입으로 반환하는 getWriter() 메소드가 존재한다 이를 이용하여 java파일 안에서 html을 반환시키는 출력 객체를 만들어 반환할 수 있게 된다. package practice.helloservlet; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.Web..
[BackEnd] Web Architecture & Servlet 기초 (eclipse) Web Architecture Client(Web Browser) : html,css,Js등의 정보를 server에 요청(request)함 WebServer : 보통 http server를 말함. hyper text의 변환작업을 수행하고 요청받은 정보를 처리하기 위해 데이터를 Application server로 전달함. 응답(response)을 마크업 언어로 client에게 전달함. Application Server : Client가 요청한 것에 대한 Logic을 담당함. DataBase와 연동하여 작업을 처리할 수 있음. 처리한 결과를 Web Server로 넘겨줌 Web Application Server(WAS) : Web Server + Application Server의 기능을 합친 것 . ex) ..