본문 바로가기

분류 전체보기

(86)
JPA 테이블 생성하기, 연관 관계 JPA 테이블 생성하기 Blog 테이블 만들기 (user, board, reply 테이블) User 테이블 : 유저 Board 테이블 : 게시글 Reply 테이블 : 답변(댓글) 연관관계 만들기 더미 데이터 insert 본격적으로 DB의 테이블을 만들기 위해 스프링부트 패키지 이하에 model 패키지를 만들고 안에 User, Board, Reply 클래스를 만든다. model 패키지란? 테이블을 만들고 관리하기 위한 패키지이다. 모델 패키지의 테이블에는 User, Board, Reply가 있으며 모든 테이블엔 PRIMARY KEY가 있어야 한다. 테이블화 하기 위해서 Entity 어노테이션을 붙인다. PRIMARY KEY를 만들기 위해서 Id 어노테이션을 붙인다, PRIMARY KEY는 오라클의 시퀀스 ..
yml 파일 설정, jsp 파일 스프링에서 설정을 바꿀땐 application.yml의 설정을 건들면 된다. application.yml 파일에 모든 설정들을 하면 되고 규칙은 yaml파일의 규칙을 따른다. 스프링은 프로젝트에 진입하기 직전 application.yml 파일을 읽고 시작하게 된다. 다음과 같이 yml 파일을 설정하였다. server: port: 8000 servlet: context-path: /blog encodinsmg: charset: UTF-8 enabled: true force: true spring: mvc: view: prefix: /WEB-INF/views/ suffix: .jsp datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysq..
Maven과 라이브러리/Builder 패턴/yaml 설정 Maven과 라이브러리 프로젝트에 라이브러리를 적용하기 위해서는 어떤 과정을 거칠까? 라이브러리가 필요하면 일단 해당 사이트로 가서 라이브러리를 다운 받고, 다운 받은 파일을 내 프로젝트 내부에 복사하고 빌드 한다. 그러면 특정 라이브러리가 필요할 때 import해서 사용할 수 있다. ex) 프로젝트 이름이 blog라면 필요한 라이브러리인 ojdbc(오라클) 드라이버를 사용하기 위해서 첫번째로 오라클 사이트에서 드라이버를 다운한 뒤 lib 폴더를 만들어 해당 파일을 복사한다. 복사 후에 프로젝트가 인식할 수 있도록 빌드를 한다. 다른 프로젝트에서도 해당 라이브러리를 사용한다면 그 프로젝트에 lib 폴더를 만들어 복사를 하고 빌드를 하는데, 이렇게 복사하지 않고 프로젝트 외부에 따로 폴더를 만들어 그 폴더..
포스트맨 실습 : 데이터 요청하기 1. 데이터 보호하기 자바에서는 값을 바로 수정할 수 없게 하기 위해서(데이터를 보호하기 위해) 변수를 private으로 만든다. 객체지향에서는 변수를 private으로 만들고 메소드를 통해 변수 값이 변할 수 있게 만들어야 한다. private int hungry = 50; public void eat() { hungryState+=10; } 함수를 통해 값에 접근한다!! 변수의 상태는 메소드에 의해 변경된다. 2. source에서 getter와 setter + constructor(생성자) 만들기 private int id; private String username; private String passward; private String email; public Member(int id, Strin..
http의 요청방법과 통신방식, header와 body HTTP 1.1 (GET, POST, PUT, DELETE) 기본적으로 통신을 위해서는 두 개의 대상에 스트림이 연결되어야 한다. 여기서 연결되는 스트림은 바이트스트림이라고 해서 이 선에 파일 비트가 왔다갔다하며 통신을 한다. 서로 두 개의 스트림으로 연결되어 하나는 write, 하나는 read를 하는데 이것이 일반적인 통신의 방법이다. 요청은 항상 클라이언트가 하며, 응답은 서버가 한다. http 통신은 데이터를 가지고 있는 서버(갑) 입장에서는 데이터를 요청하는 클라이언트(을)이 궁금하지 않고, 클라이언트가 서버에게 데이터를 요청하면서 서버가 응답을 하는데 이 때 클라이언트가 요청하는 약속된 방법이 get, post, put, delete이다. 1. GET 요청 -데이터를 줘(데이터를 요청) -데이터..
프로젝트 만들기 본격적으로 프로젝트를 만들기에 앞서 몇 가지 셋팅을 먼저 해보려고 한다. 우선 스프링에서는 어노테이션을 붙여서 스캔하는 파일을 제한할 수 있다. 컨트롤러 클래스를 만들어서 스캔하는 파일을 제한한다. 컨트롤러 -스프링이 패키지이름 이하를 스캔하여 모든 파일을 메모리에 new 하는게 아닌 특정 어노테이션이 붙어있는 클래스 파일만을 new해서(IOC) 컨테이너에서 관리해준다. @RestController public class BlogControllerTest { //주소 이름을 입력받음 //http://localhost:8080/test/hello @GetMapping("/test/hello") public String hello() { return "hello Spring boot"; } } MySQL 환..
[스프링] 패키지 이름, UTF-8 스프링과 패키지 이름(제어의 역전) 스프링부트에서 패키지를 만들때에는 이름을 com.seo.blog 이하로 만들어야 한다. 스프링은 제어의 역전을 해서 스프링이 직접 객체를 new해서 메모리에 띄우기 때문이다. 싱글톤 패턴 : 레퍼런스 변수를 스프링이 관리해주겠다는 것 기존의 자바에서는 클래스를 new 하면 메모리 안에 공간을 만들고 클래스 변수가 가리키게 된다. 클래스의 메소드는 스택 메모리에 띄워지며 호출이 되면 메모리 안에 만들어지고 호출이 종료되면 메모리에서 사라진다. 지역변수 -> 스택 전역변수 -> 힙 스택에서 객체를 만들면 결국 지역변수가 관리하기 때문에 다른 스택에서 공유하여 사용할 수 없고, 메소드 내의 변수에 접근하기가 어려워진다. 따라서 전역변수로 선언해서 힙으로 관리하는 등의 방법을..
PHP(2) PHP 기초: 함수, 조건문 프로그램과 함수 오페라에서는 시간의 순서에 따라 음악들이 연주되는데, 이렇게 연주되는 음악들의 순서를 프로그램이라고 불렀다. 즉, 프로그래밍이라는 것은 어떤 목적을 가진 의도에 따라 함수들이 시간의 순서에 따라 실행되도록 코드를 작성하는 행위이다. 의도에 따라 함수를 잘 배치하여 시간의 순서에 따라 잘 호출되도록 만드는 것이 중요하다. 함수란 프로그램의 기본적인 원자, 부품이라고 할 수 있으며 계산 결과를 반환해주는 작은 프로그램이다. -유튜브 '생활코딩' 中 컴퓨터로 일한다는 것은 컴퓨터가 갖고 있는 기본적인 기능들을 우리가 하고자하는 일의 목적에 따라, 시간의 순서에 따라 배치하여 실행하는 것이다. 사람이 하는 일 중에는 반복적이고 실수하기 쉬운 일들이 있는데, 그런 일 일수록 사람들은 자동화하고 싶..
PHP(1) PHP 기초: 변수, 파라미터 PHP란 무엇인가? PHP 서두 웹 브라우저가 설치되어 있는 컴퓨터와, 웹서버와 PHP 소프트웨어가 설치되어 있는 서버 컴퓨터가 있다. 이 상태에서 웹 브라우저와 서버는 어떻게 상호작용할까? 웹브라우저의 주소창에 index.html 파일을 입력하면 요청을 받은 서버 컴퓨터에 설치되어 있는 웹 서버 소프트웨어는 입력된 주소를 보고, 확장자가 html 임을 확인하여 자신이 처리할 수 있다는 걸 알기 때문에 자신의 디렉토리에서 파일을 찾아 웹브라우저에게 전송해준다. 하지만, 웹브라우저가 주소창에 index.php 파일을 입력하면 웹서버는 확장자가 php인 파일은 자신의 소관이 아님을 알기 때문에 파일을 처리할 수없다. 따라서 웹 서버는 PHP 프로그램에게 일을 위임한다. PHP 프로그램은 자신의 디렉토리에서 ..
HTTP 1.1) http통신, stateless, mime 타입 기본적으로 통신을 하기 위해서는 두개의 대상에 스트림(stream)이 연결되어야 한다. *바이트 스트림이라고 하며, 8bit(문자 하나)가 왔다갔다 하면서 통신을 한다. A는 클라이언트이고 B는 서버이다. A가 B에게 데이터를 쏘는 스트림은 write 하겠다는 뜻이고 B가 A에게 데이터를 쏘는 스트림은 read 하겠다는 뜻이다. 하나의 스트림은 write, 하나의 스트림은 read. 이것이 일반적인 통신이다. B가 데이터를 가지고 있는 갑, 서버라면 B는 A가 궁금하지 않다. A가 B가 가지고 있는 데이터를 가져오고 싶어서 B에게 스트림을 연결하고 데이터를 요청하게 된 것이며, 이것에 대해 B는 응답을 하게 된다. 이렇게 데이터를 요청하는 A는 클라이언트이고 데이터를 응답하는 B는 서버이다. 서버는 클라..