프로그래밍 21

PlantUML 문법 정리(시퀀스 다이어그램)

프로젝트 설계할 때 그동안은 Draw.io를 이용하여서 시퀀스 다이어그램을 그렸었습니다. 그러던 중, 텍스트로 UML을 만들 수 있는 PlantUML을 알게되었고, 무척 편리했습니다. 시퀀스 다이어그램 그릴 때 필요한 PlantUML 문법을 간단하게 정리해보려고 합니다! PlantUML PlantUML 은 다이어그램을 빠르게 작성하기 위한 오픈 소스 프로젝트입니다. 공식 사이트 : https://plantuml.com/ko/ 다음과 같은 다이어그램을 지원합니다. 시퀀스 다이어그램 유스케이스 다이어그램 클래스 다이어그램 객체 다이어그램 액티비티 다이어그램 (예전 문법은 여기에) 컴포넌트 다이어그램 배치 다이어그램 상태 다이어그램 타이밍 다이어그램 기본 예제 @StartUML ' 작성본문입력 A -> B :..

[ JPA ] 다양한 연관 관계 매핑

객체에서 연관 관계를 설정하고 주인을 정하여 외래키를 다루는 법을 이전 글에서 다루었습니다. 이번에는 연관관계 매핑을 하는 다양한 방법에 대해 알아보겠습니다. 엔티티 연관 관계 매핑 시 고려해야 할 것 다중성 다중성은 다음과 같이 4가지의 종류가 있습니다 다대일 : @ManyToOne 일대다 : @OneToMany 일대일 : @OneToOne 다대다 : @ManyToMany 단방향, 양방향 테이블은 외래키 하나로 조인을 사용하여 양방향으로 쿼리가 가능하므로 방향의 개념이 없습니다. 객체의 경우에는 참조용 필드가 있는 경우에만 연관된 객체를 조회할 수 있습니다. 객체가 한쪽만 참조한다면 단방향, 객체가 양쪽이 서로 참조한다면 양방향이라고 할 수 있습니다. 연관관계의 주인 연관 관계의 주인 : 외래 키를 관..

프로그래밍/JPA 2022.04.14

[ JPA ] 연관관계 매핑 기초

엔티티들은 대부분 다른 엔티티와 연관 관계가 있습니다. 객체와 테이블의 연관 관계에서 가장 큰 두가지의 차이는 객체는 참조(레퍼런스)로 연관관계를 맺습니다. 테이블은 외래 키를 사용해서 조인(join)을 통해 연관관계를 맺습니다. 이러한 차이점 안에서 객체의 참조와 테이블의 외래키를 매핑하는 방법을 정리하겠습니다. 단방향 연관관계 단방향 연관관계는 회원 -> 팀 또는 팀 -> 회원 과 같이 둘 중 한 쪽만 참조하는 것을 단방향 관계라고 말합니다. member와 team이 다음과 같이 연관 관계를 맺고 있습니다. @Entity public class Member { @Id @GeneratedValue @Column(name= "MEMBER_ID") private String id; private Strin..

프로그래밍/JPA 2022.04.13

[ JPA ] 영속성 컨텍스트란?

영속성 컨텍스트란? 영속성 컨텍스트(Persistence Context)는 JPA에서 Server와 데이터 베이스 사이에 엔티티를 영구 저장하는 환경이자 논리적인 영역입니다. 다음은 EntityManager에 관한 자바 공식 문서의 설명입니다. An EntityManager instance is associated with a persistence context. A persistence context is a set of entity instances in which for any persistent entity identity there is a unique entity instance. Within the persistence context, the entity instances and their ..

프로그래밍/JPA 2022.03.28

[ JPA ] JPA란?

JPA Java 진영에서 ORM(Object-Relational Mapping) 기술 표준으로 사용하는 인터페이스 모음 자바 어플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스 인터페이스 이기 때문에 Hibernate, OpenJPA 등이 JPA를 구현합니다 ORM(Object Relational Mapping) 객체와 관계형 데이터베이스를 매핑하는 기술 개발자 대신 SQL문을 작성해주기 때문에 개발자는 단순한 SQL문 작성보다 비즈니스 로직 구성하는데 집중할 수 있어 생산성이 높아집니다. Java의 대표적인 ORM은 JPA가 있으며 다른 언어, 프레임워크에도 ORM이 존재합니다(Python -django) JPA 사용 이유 자바를 통한 데이터 접근 방식에는 JDBC API, MyBa..

프로그래밍/JPA 2022.03.27

[ 자바 / JAVA ] 출력 format(printf)

Java에서 출력할 때 System.out.printf() 메소드를 사용하여 특정 형식의 문자열을 출력할 수 있습니다. C언어에서의 printf() 함수를 사용하는 것과 사용 법은 비슷합니다. [ printf() ] public PrintWriter printf(String format, Object... args) System.out.printf("출력 format", 출력할 내용); format 설명 %s String 형식으로 출력 %d 정수 형식으로 출력 %n 줄바꿈 %f float 형식으로 출력 %t date, time 형식으로 출력 %o 8진수 정수의 형식으로 출력 %x 16진수 정수의 형식으로 출력 %b boolean 형식으로 출력 %e 지수 표현식의 형식으로 출력 [ 문자열 출력 예시 ] %..

[Web/용어정리] JSP와 Servlet

JSP와 Servlet의 차이에 대해서 알아보겠습니다 Servlet에 대한 설명은 여기 를 참고해 주세요 [ JSP ] 먼저 JSP는 Java Server Page의 약자로 정적인 HTML 파일에 동적인 정보를 넣어서 동적 웹페이지를 생성 가능하게 해주는 Server-side 웹 어플리케이션입니다. JSP는 서블릿의 확장판으로 관리와 배포가 쉬운 특징을 가지고 있습니다. [ JSP vs Servlet ] 두 가지의 대표적인 특징은 Servlet(서블릿) 서블릿은 기본적으로 Java 코드이며 안에 HTML 코드를 넣습니다. 서블릿은 사용자(Client)의 요청(request) 데이터를 처리하는 것(Controller)에 강점이 있습니다. DB와의 통신, Bussiness Logic 호출에 강점을 가지고 있..

프로그래밍/WEB 2021.10.25

[Web/용어정리] 서블릿(Servlet)이란

서블릿(Servlet)의 정의는 다음과 같습니다. "웹 요청(request)의 동적인 처리가 가능한 서버(Server-side)의 자바 프로그램" [서블릿의 특징] 서블릿은 WAS안에 있는 서블릿 컨테이너를 통해 관리가 됩니다. (참고: was설명) 서블릿을 사용하게 되면 동적인 페이지를 생성할 수 있습니다.(참고 : 동적페이지 vs 정적 페이지) 서블릿은 JAVA 코드입니다. 서블릿 안에는 HTML 코드가 들어가 있습니다. (※JSP는 HTML코드 안에 JAVA 코드를 넣습니다.) [서블릿 동작 순서 예시] 다음과 같은 HTML FORM이 있습니다. Username: Password: 1) form 태그에서 action에 어떤 서블릿을 사용할지 정해주고("loginServlet"), method에는 어..

프로그래밍/WEB 2021.10.24

[Web/용어정리] 동적, 정적 웹 페이지

[정적 웹 페이지] 컴퓨터에 저장된 파일을 그대로 보는 것. 같은 요청에 같은 소스를 보여줍니다. (1) Client가 웹 브라우저에 URL을 입력하여 웹 서버에 요청을 한다. (2) URL주소의 웹 서버에서 받은 정보를 가지고 파일을 검색합니다. (3) 검색된 HTML 문서를 Client에게 전달합니다. [동적 웹 페이지] 저장된 내용을 다른 변수로 가공하여 처리하는 것. (1) Client가 웹 브라우저에 URL을 입력하여 웹 서버에 요청을 한다. (2) 웹 서버는 요청 분석하여 처리하여 그 결과를 HTML문서로 생성합니다. (3) 생성된 HTML 문서를 Client에게 전달합니다.

프로그래밍/WEB 2021.10.24

[Web/용어정리] 웹 서버, 웹 컨테이너, 웹 어플리케이션 서버의 차이

웹 백엔드(서버) 공부를 시작하게 되면 만나는 세가지 용어 웹 서버(Web Server) 웹 컨테이너(Web container) 웹 어플리케이션 서버(Web application Server) 각각의 정의 및 특징에 대하여 알아보도록 하겠습니다. [웹 서버(Web Server)] "요청을 받아 Client에게 전달" 웹 서버는 Client 요청이 올때까지 기다리다가, 요청이 오면 요청에 대한 데이터를 전송을 해주는 역할을 하고 있습니다. 간단히 설명하면 크롬과 같은 웹 브라우저에서 네이버의 url인 www.naver.com 을 입력하면 웹 서버에서 요청을 받아 웹 브라우저에게 요청 한 파일을 전달해 줍니다. 이 때에 웹 서버는 이미 가지고 있는 html 파일이나 리소스 등 정적인 페이지만을 전송 할 수 ..

프로그래밍/WEB 2021.10.24