전체 글 (60) 썸네일형 리스트형 sql을 직접 다룰때 발생하는 문제점 sql을 직접 다룰때 발생하는 문제점 crud 기능을 개발할때 너무 많은 반복이 발생한다 회원 조회 용 sql 작성 sql 실행 조회결과를 객체로 매핑 회원 객체를 자바 컬렉션에 보관한다면 간단하게 객체 저장이 가능하지만 데이터베이스와 객체는 다른 데이터 중심 구조를 가지므로 개발자가 그 중간에서 sql 과 jdbc api를 사용해 변환 작업을 직접 해줘야 한다. 기능에 수정이 발생하면 등록코드, 조회코드, 수정코드 등을 모두 변경해야 하고, 동작이 잘 되지 않거나 다른 객체와 연관해 사용하려면 dao를 열어 sql을 확인해봐야 한다. ⇒데이터 접근 계층을 사용해 sql을 숨기는 의미가 없음 ⇒ 데이터 접근 계층 : 기반이 되는 데이터 소스의 복잡성을 외부 세상으로부터 숨기는 역할 비즈니스 요구사항을 모.. hello jpa hello jpa *김영한 님의 인프런 강의를 기반으로 정리한 글입니다. 엔티티매니저팩토리는 하나만 생성해서 애플리케이션 전체에서 공유함. 앤티티매니저는 쓰레드간 공유하지 않음. 절대절대(사용하고 버릴 것) 여러 쓰레드에서 같이 쓰면 장애 발생. JPA의 모든 데이터 변경은 트랜잭션안에서 실행되어야 함 main package hello; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.EntityTransaction; import javax.persistence.Persistence; public class JpaMain { public static vo.. 자바 웹기술의 역사 자바 웹 기술의 역사 서블릿(자바 코드로 짜야해서 HTML 생성이 어려움) → JSP(HTML 작성이 편리함. 그러나 비즈니스 로직까지 너무 많은 역할을 담당하게 되어 유지보수가 너무 너무 힘들어짐) → 서블릿, JSP 조합 MVC 패턴 사용(모델, 뷰, 컨트롤러로 역할을 나누어 개발. 렌더링 부분과 비즈니스 로직을 분리!) → MVC 프레임워크 춘추전국시대 ( MVC 패턴 자동화, 복잡한 웹 기술을 편리하게 사용할 수 있는 다양한 기능 지원) 현재 사용기술 애노테이션 기반 스프링 MVC 등장. 스프링 부트 등장 서버를 내장!(톰캣 서버를 내장해버려서 따로 설치할 필요가 없고 그냥 jar를 서버에 넣고 실행하면 서버가 뜸 = 혁신!!) 과거에는 서버에 WAS를 설치하고 , 소스는 WAR파일을 만들어서 설.. 서버 렌더링 서버 렌더링 통신하는 파일 정적 리소스 고정된 html 파일, css, js, 이미지, 영상 등을 제공함 요청이 들어오면 이미 생성되어있는 파일을 웹 브라우저에 제공 html 페이지 동적으로 필요한 html 파일을 생성해서 전달(view 템플릿에서) 웹 브라우저는 html을 해석해서 보여줌 http api html이 아니라 http 프로토콜 위에 데이터 얹어서 전달. 파일이나 html이 아닌 주로 json형식을 사용 ui 화면이 필요하면 클라리언트가 별도로 처리함 앱/웹 클라이언트/웹 브라우저(자바스크립트를 통한 호출) to 서버 서버 to 서버(주문서버→결제 서버 등) 렌더링 서버 사이드 렌더링 SSR HTML 최종 결과를 서버에서 동적으로 생성해서 클라이언트에 전달 웹 브라우저는 완전히 생성된 HTM.. 쿠버네티스 컨테이너 실행하기 컨테이너 실행하기 doker run 으로 컨테이너 생성시 결과값으로 16진수 문자열이 출력됨. 이 문자열은 컨테이너를 식별할 수 있는 고유 ID임. 컨테이너를 생성하는 명령 형식 docker run [옵션] [:태그 | @다이제스트] 태그와 다이제스트는 생략 가능 새 컨테이너를 실행하는 명령어 docker run -d --restart always nginx -d : —detach와 동일한 옵션. 컨테이너를 백그라운드에서 구동한다는 의미. 옵션 생략 시 컨테이너 내부 실행 애플리케이션의 상태가 화면에 계속 표시 됨. ctrl + c로 빠져나올 시 애리케이션 뿐만 아니라 컨테이너도 함께 중단 되는데, 계속 작동 되어야 하는 경우에는 -d 옵션을 붙여 백그라운드에서 계속 작동하게 해야 함 —restart a.. 쿠버네티스 기본 사용법 쿠버네티스 기본 사용법 배우기 파드 생성 법 쿠버네티스를 사용한다는 것은 결국 사용자에게 효과적으로 파드를 제공한다는 뜻! kubectl run 명령을 실행하면 쉽게 파드 생성이 가능함 kubectl run nginx-pod --image=nginx run 뒤의 nginx는 파드 이름, —image=nginx는 생성할 이미지 이름. create 파드 생성법과 run의 비교 kubectl create nginx --image=nginx 를 하면 에러메세지가 나온다! create로 파드를 생성하려면 kubectl create에 deployment를 추가해서 실행해야 한다. 중복되지 않게 dpy-nginx 로 파드 이름을 지정해서 생성하면 kubectl create deployment dpy-nginx --i.. 빌드 관리 도구 Maven, Gradle 차이 메이븐이란? 아파치 메이븐. 자바용 프로젝트 관리 도구. 프로젝트를 진행하면서 사용하는 많은 라이브러리를 관리해주는 도구. 사용하는 라이브러리와 연관된 다른 라이브러리도 다 연동이 되어서 관리가 됨.(즉 자동 업데이트를 해줌!) xml 기반 빌드 처리를 작성. 복잡한 내용일 경우 xml으로 작성하기 힘들어 질 수 있음. 그레이들이란? Groovy를 이용한 빌드 자동화 시스템 Groovy : 자바에 파이썬, 루비, 스몰토크등의 특징을 더한 동적 객체 지향 프로그래밍 언어. 자바 가상머신에서 동작하는 스크립트 언어임. 자바와 유사 Groovy와 유사한 도메인 언어 채용. 안드로이드 스튜디오 공식 빌드 시스템이기도 함. 자바, c, c++, 파이썬 등 여러 언어를 지원함 간편하게 사용할 수 있는 자바(Groo.. hello jpa *김영한 님의 인프런 강의를 기반으로 정리한 글입니다. 엔티티매니저팩토리는 하나만 생성해서 애플리케이션 전체에서 공유함. 앤티티매니저는 쓰레드간 공유하지 않음. 절대절대(사용하고 버릴 것) 여러 쓰레드에서 같이 쓰면 장애 발생. JPA의 모든 데이터 변경은 트랜잭션안에서 실행되어야 함 main package hello; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.EntityTransaction; import javax.persistence.Persistence; public class JpaMain { public static void main(St.. 이전 1 2 3 4 5 6 ··· 8 다음