본문 바로가기

JAVA

(18)
JAVA 기초 - 3 컴퓨터는 계산이라기보다는 끼워맞추기 식입니다. 만약 90을 찾아야 한다면 무식하지만 굉장히 빠른 속도로 답은 1인가요? -> 아닙니다 답은 2인가요? -> 아닙니다 답은 3인가요? -> 아닙니다 .... 답은 90인가요? -> 맞습니다 이런 식으로 정답을 도출해냅니다. 즉, 컴퓨터는 계산 결과가 맞는지 틀렸는지 조건을 판단하는 '조건문'과 계산을 계속 반복하는 '반복문' 이 두가지 행위를 조합해서 생각을 합니다. 엄청난 속도로 말이죠 1. 조건문 내가 만약 시인이라면 그댈 위해 노래하겠고, 그렇지 않으면 그댈 위해 춤을 추겠소 위의 문장을 코드 형식으로 표현하면 다음과 같습니다. 만약에(내가 시인) { 그댈 위해 노래를 하겠소; } 그렇지 않으면 { 그댈 위해 춤을 추겠소; } //아래와 같다 if(나 ..
JAVA 기초 - 2 -어떤 일을 하려면 많든 적든 기억을 해야 합니다. 컴퓨터도 일을 하려면 기억이 필요합니다. -사람과 코딩의 공통점 : 사람이 가지는 물건을 코딩에서는 변수라고 부르고, 사람의 행동은 코딩에서는 메서드라고 부릅니다. -컴퓨터의 저장공간은 기억공간입니다. 기억을 담당하는 장치는 메모리이며 여러가지 종류가 있습니다. 1. 저장메모리: 보관기능을 하는 메모리 2. 램(RAM)메모리: 작업을 하는 동안 임시로 사용되는 공간, 책상과 같은 작업공간을 말한다. 책상 위의 책을 다 본 다음에 책장에 쪽으면 책상이 도로 깨끗해지는 것처럼, 실행중인 프로그램을 종료하면 램에서 그 내용이 사라지며 임의 접근 메모리라고도 부른다. 3. 캐시메모리: 계산이나 판단을 위해 찰나를 기억합니다. 계산의 순간에 필요한 기억을 저장하..
JAVA 기초 - 1 Do it! 첫코딩 : 보통 사람이 알아야 할 프로그래밍 기초 with JAVA(정동균 지음)을 읽고 기초적인 부분이 잘 설명되어 있는것 같아서 정리합니다. -외국어를배우기 어려운 이유는 새로운 언어이기 때문인 것도 있지만, 일상생활에서 외국어를 사용할 일이 별로 없기 때문입니다. -언어는 사람과 사람 사이에 정보를 전달하기 위한 수단일 뿐이고 머리로는 언어를 생각하지 않습니다. -컴퓨터는 머릿속에서 bit 단위로 생각을 합니다 (어떤 표현을 써도 컴퓨터는 비트 단위로 생각한다) -비트는 0 또는 1 중 하나의 정보를 가지는 쪼끄만(bit)정보 단위입니다. 전압을 올리면 1, 내리면 0 입니다. 전원 스위치를 끄고 켜는 것이 0과 1 입니다. 전기가 들어오고, 들어오지 않고, 예/아니오 -여러가지 표현은..
영속성 컨텍스트, json 통신 @Transactional @PutMapping("/dummy/user/{id}") public User updateUser(@PathVariable int id, @RequestBody User requestUser) { System.out.println("id: "+id); System.out.println("password: "+requestUser.getPassword()); System.out.println("email: "+requestUser.getEmail()); User user = userRepository.findById(id).orElseThrow(()->{ return new IllegalArgumentException("수정에 실패하였습니다."); }); user.setPassw..
Json, RestController, 페이징 JSON은 왜 나왔고, 어떻게 사용하는가? 프랑스인, 일본인, 독일인이 한국인과 데이터를 교류한다면 한국인이 프랑스어, 일본어, 독일어를 배우는 것보다는 프랑스인과 일본인과 독일인이 한국어를 공부하는게 더 효율적이다. 하지만 한국인이 미국인으로 바뀌게 된다면? 통신이 중지된다. 따라서 모두가 사용할 수 있는 공용어를 정하고 그것을 모두가 공부하고 그것으로 통신을 하면 문제가 해결된다. 모든 사람들은 데이터를 전송 시에 자기나라 언어를 공용어(예: 영어)로 번역하고, 마찬가지로 모든 사람들은 데이터를 응답받을 때 영어를 자기나라 언어로 번역하는 것이 이상적인 프로토콜이 된다. 서로 다른 오브젝트는 이해할 수 없다. 자바데이터를 보내면 파이썬은 이해할 수 없다. 따라서 공용어를 만들게 되는데 이것을 Json..
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 요청 -데이터를 줘(데이터를 요청) -데이터..