java
-
1. 배열의 선언과 생성 public class Array1 { public static void main(String[] args) { int[] students ; // 배열 변수 선언 students = new int[5]; // 배열 생성 // 변수 값 대입 students[0] = 90; students[1] = 80; students[2] = 70; students[3] = 60; students[4] = 50; // 배열의 길이 int length = students.length; // 변수값 사용 : 리팩터링 for (int i = 0; i < length; i++) { System.out.println("학생" + (i + 1) + " 점수 : " + students[i]); } } } ..
[Java 기초] 배열(Array)1. 배열의 선언과 생성 public class Array1 { public static void main(String[] args) { int[] students ; // 배열 변수 선언 students = new int[5]; // 배열 생성 // 변수 값 대입 students[0] = 90; students[1] = 80; students[2] = 70; students[3] = 60; students[4] = 50; // 배열의 길이 int length = students.length; // 변수값 사용 : 리팩터링 for (int i = 0; i < length; i++) { System.out.println("학생" + (i + 1) + " 점수 : " + students[i]); } } } ..
2024.01.28 -
15장. 댓글 컨트롤러와 서비스 만들기 (1) 15.1. 댓글 REST API의 개요 · REST 컨트롤러 - 댓글 REST API를 위한 컨트롤러 - 서비스와 협업, 클라이언트 요청을 박아 응답하며 뷰(View)가 아닌 데이터(JSON) 반환 · 서비스 - REST 컨트롤러와 리파지터리 사이에서 비즈니스 로직, 즉 처리 흐름을 담당 - 예외 상황이 발생하면 @Transactional로 변경된 데이터 롤백 · DTO - 사용자에게 보여 줄 댓글 정보를 담은 것 - 단순히 클라이언트와 서버 간에 댓글 JSON 데이터 전송 · 엔티티 - DB 데이터를 담는 자바 객체 - 엔티티를 기반으로 테이블 생성 - 리파지터리가 DB 속 데이터를 조회하거나 전달할 때 사용 · 리파지터리 - 엔티티를 관리하는 인..
[Spring Boot] 15. 댓글 컨트롤러와 서비스 만들기 (1)15장. 댓글 컨트롤러와 서비스 만들기 (1) 15.1. 댓글 REST API의 개요 · REST 컨트롤러 - 댓글 REST API를 위한 컨트롤러 - 서비스와 협업, 클라이언트 요청을 박아 응답하며 뷰(View)가 아닌 데이터(JSON) 반환 · 서비스 - REST 컨트롤러와 리파지터리 사이에서 비즈니스 로직, 즉 처리 흐름을 담당 - 예외 상황이 발생하면 @Transactional로 변경된 데이터 롤백 · DTO - 사용자에게 보여 줄 댓글 정보를 담은 것 - 단순히 클라이언트와 서버 간에 댓글 JSON 데이터 전송 · 엔티티 - DB 데이터를 담는 자바 객체 - 엔티티를 기반으로 테이블 생성 - 리파지터리가 DB 속 데이터를 조회하거나 전달할 때 사용 · 리파지터리 - 엔티티를 관리하는 인..
2024.01.26 -
14장. 댓글 엔티티와 리파지터리 만들기 14.1. 댓글 기능의 개요 14.1.1. 댓글과 게시글의 관계 게시판을 보면 하나의 글에 수많은 댓글이 달리는데, 이러한 관계를 one-to-many, 즉 일대다(1:N) 관계라고 한다. 거꾸로 댓글의 관점에서 보면 여러 댓글이 하나의 게시글에 달리므로 many-to-one, 즉 다대일(N:1) 관계라고 한다. 그림을 보면 article 테이블과 comment 테이블이 id를 기준으로 관계를 맺고 있다. 두 테이블 모두 각각 자신을 대표하는 id가 있는데, id와 같이 자신을 대표하는 속성을 대표키라고 한다. 대표키는 동일 테이블 내에 중복된 값이 없어야 한다. comment 테이블을 보면 연관 대상을 가리키는 article_id가 하나 더 있는데, articl..
[Spring Boot] 14. 댓글 엔티티와 리파지터리 만들기14장. 댓글 엔티티와 리파지터리 만들기 14.1. 댓글 기능의 개요 14.1.1. 댓글과 게시글의 관계 게시판을 보면 하나의 글에 수많은 댓글이 달리는데, 이러한 관계를 one-to-many, 즉 일대다(1:N) 관계라고 한다. 거꾸로 댓글의 관점에서 보면 여러 댓글이 하나의 게시글에 달리므로 many-to-one, 즉 다대일(N:1) 관계라고 한다. 그림을 보면 article 테이블과 comment 테이블이 id를 기준으로 관계를 맺고 있다. 두 테이블 모두 각각 자신을 대표하는 id가 있는데, id와 같이 자신을 대표하는 속성을 대표키라고 한다. 대표키는 동일 테이블 내에 중복된 값이 없어야 한다. comment 테이블을 보면 연관 대상을 가리키는 article_id가 하나 더 있는데, articl..
2024.01.25 -
13장. 테스트 코드 작성하기 13.1. 테스트란? 최근에는 테스트 도구를 이용해 반복적인 검증 절차를 자동화하고 있다. 테스트 도구를 활용해 코드를 검증한다는 것은 테스트 코드(test code)를 작성해 실행한다는 것이다. 작성한 코드가 테스트를 통과하면 지속적인 리팩터링으로 코드를 개선하고, 통과하지 못하면 잘못된 부분을 찾아 고치는 디버깅(debugging)을 해야 한다. · 테스트(test) - 프로그램의 품질을 검증하는 것 - 의도대로 프로그램이 잘 동작하는지 확인하는 과정 · 테스트 주도 개발(TDD, Test Driven Development) - 일단 테스트 코드를 만든 후 이를 통과하는 최소한의 코드부터 시작해 점진적으로 코드를 개선 및 확장하는 개발 방식 13.2. 테스트 코드 작성하..
[Spring Boot] 13. 테스트 코드 작성하기13장. 테스트 코드 작성하기 13.1. 테스트란? 최근에는 테스트 도구를 이용해 반복적인 검증 절차를 자동화하고 있다. 테스트 도구를 활용해 코드를 검증한다는 것은 테스트 코드(test code)를 작성해 실행한다는 것이다. 작성한 코드가 테스트를 통과하면 지속적인 리팩터링으로 코드를 개선하고, 통과하지 못하면 잘못된 부분을 찾아 고치는 디버깅(debugging)을 해야 한다. · 테스트(test) - 프로그램의 품질을 검증하는 것 - 의도대로 프로그램이 잘 동작하는지 확인하는 과정 · 테스트 주도 개발(TDD, Test Driven Development) - 일단 테스트 코드를 만든 후 이를 통과하는 최소한의 코드부터 시작해 점진적으로 코드를 개선 및 확장하는 개발 방식 13.2. 테스트 코드 작성하..
2024.01.24 -
12장. 서비스 계층과 트랜잭션 12.1. 서비스와 트랜잭션 개념 · 서비스 - 컨트롤러와 리파지터리 사이에 위치하는 계층 - 서버의 핵심 기능(비지니스 로직)을 처리하는 순서를 총괄 · 트랜잭션 - 모두 성공해야 하는 일련의 과정 - 쪼갤 수 없는 업무 처리의 최소 단위 · 롤백 - 트랜잭션이 실패로 돌아갈 경우 진행 초기 단계로 돌리는 것 앞서 작성한 REST 컨트롤러 코드를 보면 컨트롤러의 역할과 서비스의 역할을 동시에 하는 1인 2역 코드이다. 따라서 클라리언트의 요청을 받고 응답하는 컨트롤러의 역할 코드와 리파지터리에서 데이터를 가져오도록 하는 서비스 역할 코드를 나눠서 분리해야 한다. 12.2. 서비스 계층 만들기 먼저 객체 주입된 리파지터리를 서비스로 바꾸고 ArticleService 클래스..
[Spring Boot] 12. 서비스 계층과 트랜잭션12장. 서비스 계층과 트랜잭션 12.1. 서비스와 트랜잭션 개념 · 서비스 - 컨트롤러와 리파지터리 사이에 위치하는 계층 - 서버의 핵심 기능(비지니스 로직)을 처리하는 순서를 총괄 · 트랜잭션 - 모두 성공해야 하는 일련의 과정 - 쪼갤 수 없는 업무 처리의 최소 단위 · 롤백 - 트랜잭션이 실패로 돌아갈 경우 진행 초기 단계로 돌리는 것 앞서 작성한 REST 컨트롤러 코드를 보면 컨트롤러의 역할과 서비스의 역할을 동시에 하는 1인 2역 코드이다. 따라서 클라리언트의 요청을 받고 응답하는 컨트롤러의 역할 코드와 리파지터리에서 데이터를 가져오도록 하는 서비스 역할 코드를 나눠서 분리해야 한다. 12.2. 서비스 계층 만들기 먼저 객체 주입된 리파지터리를 서비스로 바꾸고 ArticleService 클래스..
2024.01.23 -
11장. HTTP와 REST 컨트롤러 11.1. REST API 의 동작 이해하기 · REST - HTTP URL로 서버의 자원을 명시하고, - HTTP 메서드(POST, GET, PATCH, DELETE)로 해당 자원에 대해 CRUD(생성, 조회, 수정, 삭제)하는 것. · API - 클라이언트가 서버의 자원을 요청할 수 있도록 서버에서 제공하는 인터페이스(interface) 클라이언트가 보내는 HTTP 요청 메시지의 첫 줄에는 시작 라인인 요청 라인(request line)이 있고, 그 아래에는 헤더(header)와 본문(body)가 있다. 응답 메시지의 첫 줄에도 시작 라인인 상태 라인(status line)이 있고, 그 아래 헤더(header)와 본문(body)가 있다. 응답으로 오는 상태 코드는..
[Spring Boot] 11. HTTP와 REST 컨트롤러11장. HTTP와 REST 컨트롤러 11.1. REST API 의 동작 이해하기 · REST - HTTP URL로 서버의 자원을 명시하고, - HTTP 메서드(POST, GET, PATCH, DELETE)로 해당 자원에 대해 CRUD(생성, 조회, 수정, 삭제)하는 것. · API - 클라이언트가 서버의 자원을 요청할 수 있도록 서버에서 제공하는 인터페이스(interface) 클라이언트가 보내는 HTTP 요청 메시지의 첫 줄에는 시작 라인인 요청 라인(request line)이 있고, 그 아래에는 헤더(header)와 본문(body)가 있다. 응답 메시지의 첫 줄에도 시작 라인인 상태 라인(status line)이 있고, 그 아래 헤더(header)와 본문(body)가 있다. 응답으로 오는 상태 코드는..
2024.01.22 -
10장. REST API와 JSON 10.1. REST API와 JSON 등장 배경 웹 서비스를 사용하는 클라이언트는 웹 브라우저 뿐만 아니라 스마트폰, 스마트워치, 태블릿, CCTV, 각종 센서 등으로 다양하다. 따라서 서버는 이러한 모든 클라리언트의 요청에 응답해야 하고 웹 브라우저 뿐만 아니라 어떤 기기가 와도 기기에 맞는 뷰 페이지를 응답해야 하는데, 이것이 REST API가 필요한 이유이다. · REST API (Representational State Transfer API) - 서버의 자원을 클라이언트에 구애받지 않고 사용할 수 있게 하는 설계 방식 - REST API 방식에서는 HTTP 요청에 대한 응답으로 서버의 자원을 반환한다. - 이 때 서버에서 보내는 응답이 특정 기기에 종속되지 않..
[Spring Boot] 10. REST API와 JSON10장. REST API와 JSON 10.1. REST API와 JSON 등장 배경 웹 서비스를 사용하는 클라이언트는 웹 브라우저 뿐만 아니라 스마트폰, 스마트워치, 태블릿, CCTV, 각종 센서 등으로 다양하다. 따라서 서버는 이러한 모든 클라리언트의 요청에 응답해야 하고 웹 브라우저 뿐만 아니라 어떤 기기가 와도 기기에 맞는 뷰 페이지를 응답해야 하는데, 이것이 REST API가 필요한 이유이다. · REST API (Representational State Transfer API) - 서버의 자원을 클라이언트에 구애받지 않고 사용할 수 있게 하는 설계 방식 - REST API 방식에서는 HTTP 요청에 대한 응답으로 서버의 자원을 반환한다. - 이 때 서버에서 보내는 응답이 특정 기기에 종속되지 않..
2024.01.20 -
9장. CRUD와 SQL 쿼리 종합 서버에서 데이터의 생성, 조회, 수정, 삭제 등을 요청하면 JPA의 리파지터리가 DB에 해당 요청을 전달하고, 요청을 받은 DB는 SQL로 쿼리를 작성해 데이터를 관리한다. 9.1. JPA 로깅 설정하기 · 쿼리(Query) - DB에 정보를 요청하는 구문 데이터 관리 SQL HTTP 데이터 생성(Create) INSERT POST 데이터 조회(Read) SELECT GET 데이터 수정(Update) UPDATE PATCH (PUT) 데이터 삭제(Delete) DELETE DELETE ·로깅(Logging) - 시스템이 작동할 때 당시의 상태와 작동정보를 기록하는 것 9.1.1. 로깅 레벨 설정 + 쿼리 줄 바꿈 + 매개변수 보여주기 src > main > resour..
[Spring Boot] 09. CRUD와 SQL 쿼리9장. CRUD와 SQL 쿼리 종합 서버에서 데이터의 생성, 조회, 수정, 삭제 등을 요청하면 JPA의 리파지터리가 DB에 해당 요청을 전달하고, 요청을 받은 DB는 SQL로 쿼리를 작성해 데이터를 관리한다. 9.1. JPA 로깅 설정하기 · 쿼리(Query) - DB에 정보를 요청하는 구문 데이터 관리 SQL HTTP 데이터 생성(Create) INSERT POST 데이터 조회(Read) SELECT GET 데이터 수정(Update) UPDATE PATCH (PUT) 데이터 삭제(Delete) DELETE DELETE ·로깅(Logging) - 시스템이 작동할 때 당시의 상태와 작동정보를 기록하는 것 9.1.1. 로깅 레벨 설정 + 쿼리 줄 바꿈 + 매개변수 보여주기 src > main > resour..
2024.01.18