분류 전체보기 439

UML 클래스 다이어그램

UML(Unified Modeling Language) 다이어그램 : 시스템을 모델로 표현해주는 대표적인 모델링 언어 클래스 다이어그램은 구조 다이어그램으로 클래스 내부 구성요소 및 클래스 간의 관계를 도식화하여 시스템의 특정 모듈이나 일부 및 전체를 구조화한다. 클래스 다이어그램의 목적에 따라 개념, 명세, 구현 단계로 나눌 수 있다. 개념 단계에서는 클래스만 도출하고 관계를 단순화하는 것이 목적이다. 명세와 구현 단계에서는 개발 직전 설계나 구현 이후 설명 목적으로 사용되고 이 다이어그램을 기반으로 코드를 구현하거나 코드를 기반으로 다이어그램을 그리기 때문에 코드와 연관이 깊다. 클래스 다이어그램에서 클래스는 이름, 속성(변수), 메서드 순으로 나열한다. 속성과 메서드는 생략이 가능하지만 이름은 필수..

JAVA 2022.03.07

ERD(an Entity Relationship Diagram)

ERD(an Entity Relationship Diagram) : 시스템의 엔티티들이 무엇이 있는지 어떤 관계가 있는지를 나타내는 다이어그램 존재하고 있는 것(Entity)들의 관계(Relationship)를 나타낸 도표(Diagram) ▼ ERD의 구성요소 ▼ 데이터베이스에서의 역할 Entity 테이블 Attribute 컬럼 Relationship Primary Key, Foriegn Key 예시를 들어보자. 저자, 글, 댓글 테이블이 있다. Entity : 어떤 시스템인지에 따라 사람, 장소, 사건(이벤트), 오브젝트가 될 수도 있다. 각각의 테이블이 Entity가 된다. Entity의 표기법은 사각형 모양이다. Attribute : 특성, 엔티티의 성격, 관계, 또 다른 속성이다. Attribut..

DB 2022.03.07

스프링 23강. 인증과 권한

인증(Authentication) - 우리 집 대문 권한(Authorization) - 집에 들어와서 TV, 화장실, 컴퓨터, 세탁기 서버 입장에서 인증 (홍길동) - 컨트롤러의 메서드(회원정보)를 호출하는 것까지 인증 서버 입장에서 권한(홍길동, 임꺽정, 장보고) - 누구의 정보지? 인증이란? 1. 세션 영역 2. 본인의 세션 ID에 3. "인증됨" 이라고 적혀있으면 내가 if로 접근해서 확인해보고 있으면 실행, 없으면 튕겨냄 이것만으로 홍길동의 정보를 가져올 수 없음 권한이란? 1. 세션 영역 2. 본인의 세션 ID에 3. 본인의 Primary Key를 넣어둠 본인의 세션영역에는 user 오브젝트를 통째로 넣어서 유저의 정보를 넣어둬야 id를 꺼내봤을 때 그 사람의 정보를 꺼내 줄 수 있음 SELEC..

Spring/Blog-V1 2022.03.05

스프링 22강. 세션과 쿠키

request의 메모리 공간에는 scope가 있다. 요청 시에 생성되었다가 응답하면 사라진다. 마치 stack처럼 자동으로 메모리 관리가 된다. 하지만 실제로는 heap에 저장된다! 연결된 버퍼가 연결이 지속되어 있다고 무조건 stateful이 아니라 연결은 끊겨도 서버가 클라이언트를 기억할 수 있다면 stateful이라고 할 수 있다. http 프로토콜은 기본적으로 stateless 상태이다. 응답을 해주고 나면 전혀 기억하지 않는다. 이런 것 때문에 세션이라는 메모리 영역이 필요하다. 모든 서버는 세션을 가지고 있다. 세션은 heap영역이다. heap의 어느 부분을 논리적으로 세션이라고 부른다. 세션은 request와 다르게 계속해서 기억하고 있는 메모리 공간이다. 세션은 서버가 종료될 때까지 메모리..

Spring/Blog-V1 2022.03.05

스프링 21강. UserRepository(userEntity)

지금까지의 상황은 아래 그림과 같다. 이제 Repository를 만들어보자. 지금부터 Repository 만드는 과정은 문법! 지켜야 한다!! Repository는 class가 아닌 interface이다. 그리고 JpaRepository를 상속받아야 한다. JpaRepository는 제네릭으로 타입을 결정한다. 네가 관리하는 오브젝트가 어떤 타입인지 알려줘 그 테이블의 PK 타입을 알려줘 JpaRepository를 extends 받고 첫 번째 제네릭에 User라고 적어만 주면 User 오브젝트를 말한다는 것을 알고 오브젝트에 대한 모든 정보를 가져와서 JpaRepository가 미리 만들어놓은 메서드를 사용할 수 있게 해 준다. 단순하고 대표적인 쿼리는 미리 제공해준다. JOIN과 같은 복잡한 연산은 제..

Spring/Blog-V1 2022.03.04

스프링 20강. User 관련 UI 완성

유저 상세 페이지 detail.mustache ▼ {{> /layout/header}} 유저네임 자리 패스워드 자리 이메일 자리 수정페이지 이동 {{> /layout/footer}} html5표준에서 form태그안에서 put과 delete를 사용하지 못한다. 이 form태그는 자바 스크립트로 관리해야 한다. submit 버튼을 선택하면 form 태그가 가지고있는 input태그를 모두 가져간다. 근데 form 태그를 사용 할 수 없으니까 지워주자. 유저 수정 페이지 updateForm.mustache ▼ {{> /layout/header}} 수정완료 {{> /layout/footer}} input태그의 name을 id로 바꿔준다. 자바 스크립트로 id값을 가져와서 컨트롤할것이다. id는 자바스크립트에서 유..

Spring/Blog-V1 2022.03.04

스프링 19강. 웹 페이지 UI 만들기

블로그 웹 페이지를 만들 것이다. 블로그 프로젝트의 파일 구조는 이러하다. 이번 시간에는 회원가입 페이지, 로그인 페이지, 글 목록 페이지 UI 작업을 할 것이다. 우선 컨트롤러를 만들어보자. package site.metacoding.dbproject.web; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springfr..

Spring/Blog-V1 2022.03.03

스프링 18강. Entity 생성

post 테이블 id, title, content user 테이블 id, username, password 테이블 간의 연관 관계가 필요하다. 글 하나는 한 명의 유저가 쓴다. 1:1의 관계이다. 유저 한명은 여러 개의 글을 쓸 수 있다. 1:N의 관계이다. 관계는 큰쪽으로 따진다. 1:N의 관계에서 N이 FK(외래키)를 가지고 N이 드라이빙 테이블이 된다. 한번 이해했으면 이제 외워서 사용하자! ORM(Object Relational Mapping) : 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해주는 것 자바는 객체지향 언어인데 DB와 연결을 위해 모델을 만들 때 오브젝트 타입 속성을 만들 수 없다. 디비에 오브젝트를 넣을 수 없으니까! ORM에 대해선 다음에 더 자세히 배우자. 초기에..

Spring/Blog-V1 2022.03.03

스프링 17강. 스프링 DB 연결

dbproject를 새로 만들어보자. 다른 과정은 다 똑같지만 라이브러리를 추가로 2개 더 받아줄 것이다. (1) 우선 설정 파일부터 application.yml로 바꿔준다. https://jaewon2336.tistory.com/235 스프링 16강. application.yml 설정 파일 server: port: 8080 servlet: context-path: / encoding: charset: utf-8 spring: datasource: url: jdbc:mariadb://localhost:3306/greendb driver-class-name: org.mariadb.jdbc.Driver username: green passwor.. jaewon2336.tistory.com (2) 테이블을 생..

Spring/Blog-V1 2022.03.02