Spring 21

웹 관련 지식 :) SSR(Server Side Rendering) vs CSR(Client Side Rendering)

goal SSR과 CSR을 이해한다. Server Side Rendering SSR과 CSR의 차이점을 이해한다. 🤪 멍청한 나, 그리고 본의아니게 강사님 괴롭힘..💣 코드스테이츠 실시간 세션에서 강사님께 하나부터 열까지 다 알려달라는 식으로 붙잡아버렸고(사실 혼자 공부할 때 그냥 대강 보고 넘겼다...) 강사님이 날 반드시 이해시키겠다는 자세로 임해주셔서 강제적(?)으로 이해해버렸다. 세션에 상주하셨던 나태O 강사님, 이정O 강사님, 구민O 강사님께 정말 감사드린다. 앞으로 더 괴롭힐것 같은데.. 미리 죄송하다는 말씀드린다- 1. SSRServer Side Rendering URL은 보이지 않지만, 다른 페이지로 전환되는 것이 SSR 웹 페이지를 브라우저에서 1 렌더링하는 대신, 서버에서 렌더링한다. ..

네트워크 :) 클라이언트-서버 콘셉트 / 브라우저 작동원리(프로토콜, URL, URI, HTTP) / Chrome Network Tab / HTTP Messages의 구조와 설명

goal 클라이언트-서버 콘셉트를 이해한다. 브라우저의 작동 원리를 이해한다. Chrome Network Tab을 이해할 수 있다. HTTP messages의 구조를 설명한다. 같이보면 좋을 글 (중복포함) 이전에 작성한 나의 포스팅 - 웹 관련 지식 :) 웹의 동작방식(HTTP, TCP/IP, DNS) 큰 그림, 패킷의 얕은 이해 1. 클라이언트 - 서버 아키텍쳐 2티어 아키텍쳐, 3티어 아키텍쳐가 무엇인가? 나의 포스팅 자료참고 잡다한 기초 :) 컴퓨터 구성 요소 및 동작방식, sw/hw종류, 컴파일과 빌드, 2티어/3티어 아키텍쳐 2. 브라우저의 작동 원리 [1] 클라이언트와 서버 간의 통신 방법 HTTP 1 프로토콜 웹 애플리케이션 아키텍처에서는 클라이언트와 서버가 HTTP 프로토콜로 대화를 나눈..

Spring + SIA 그룹스터디(3장) :) mybatis3 기본 CRUD를 이해한다.

👨‍👨‍👦‍👦 SpringInAction Group Study [이채민, 권태구, 최재호, 곽현기, 김은철] group - GIT : https://github.com/euncheol-kim/SpringInActionGroupStudy 이채민 님 : https://github.com/CokeLee777 권태구 님 : https://github.com/Hashtae9 최재호 님 : https://github.com/jaero0725 곽현기 님 : https://github.com/nicebyy 김은철 (본인): https://github.com/euncheol-kim 작성자 : 김은철 goal jdbc 프레임워크인 mybatis와 Database(mySQL)을 이용해 기본적인 CRUD를 이해한다. myba..

Spring/Spring 2022.05.22

Spring docs :) Spring API documentation 영어 못한게 죄지

Spring-Projects [공식문서] https://spring.io/projects 구글 번역기로 api 문서 번역하는 방법 api docs에 진입하여 원하는 버전을 선택하여 들어간 후, url 뒤에 /overview-summary.html 를 붙여주면 번역이 가능하다. ※ 찾은 방법 뭔가 연결되어 있을 것 같아서 개발자 도구 열어봤더니 src = /overview-summary.html로 연결된 것을 우연히 확인했고 그냥 url 뒤에 붙여봄 1. Spring-framework documentation https://docs.spring.io/spring-framework/docs/ 2. Spring-boot documentation https://docs.spring.io/spring-boot/ ..

Spring 이론 + SIA 그룹스터디(2장) :) Spring에서 사용하는 Template의 종류와 WAR, JAR에 따른 Template 채택

👨‍👨‍👦‍👦 SpringInAction Group Study [이채민, 권태구, 최재호, 곽현기, 김은철] group - GIT : https://github.com/euncheol-kim/SpringInActionGroupStudy GitHub - euncheol-kim/SpringInActionGroupStudy: SpringInAction 스터디 저장소입니다. SpringInAction 스터디 저장소입니다. Contribute to euncheol-kim/SpringInActionGroupStudy development by creating an account on GitHub. github.com 이채민 님 : https://github.com/CokeLee777 권태구 님 : https://g..

spring 이론 :) Jar(java Archive)와 War(Web Application Archive)

goal war, jar의 차이점과 특징 참고자료 [Java] JAR WAR 차이점 및 특징 ( + EAR ), https://ifuwanna.tistory.com/224, IfUWanna JAR와 WAR의 공통점 두 파일 모두 Archive파일이다. Archive파일이란 우리가 자주 접해본 zip파일과 같다고 생각해도 무방하다. jar와 war를 사용하는 목적으로는 어플리케이션을 쉽게 배포하고 동작시킬 수 있도록 관련 파일(리소스, 속성파일 등)들을 패키징해주는 것이다. 1. JAR (Java Archive) Java 리소스와 속성 파일, 라이브러리 및 액세서리 파일이 포함되어있다. 쉽게 자바 프로젝트를 압축한 파일로 생각하자 jar파일은 플랫폼에 귀속되는 것만 제외하면 zip파일과 동일한 구조 JAR..

Spring + java 이론 :) SOLID원칙, 객체지향 설계 5원칙 **백번천번만번십만번 보기**

goal 객체지향 설계 원칙 (객체지향 설계 5원칙)의 SOLID원칙을 이해한다. 1 ] 객체지향 설계의 5원칙, SOLID원칙 명칭 번역 SRP (The Single Responsibility Principle) 단일 책임 원칙 OCP (The Open Closed Principle) 개방 폐쇄 원칙 LSP (The Liskov Substitution Principle) 리스코프 치환 원칙 ISP (The Interface Segregation Principle) 인터페이스 분리 원칙 DIP (The Dependency Inversion Principle) 의존관계 역전 원칙 1. SRP (단일 책임 원칙) [1] 개념 모든 클래스는 하나의 책임만 가지며, 그 책임을 완전히 캡슐화해야 함을 말함 클래스..

Spring :) Java만을 이용한 JDBC (데이터베이스 연결)

goal DB로 접근하는 UserDAO.class를 만들어보자 (jdbc) Spring을 사용하지 않고 순수 자바로 구현함 1 ] JAVA만 사용한 UserDAO.class 생성 (DAO) ** 들어가기전에 ** [ JDBC 흐름 ] JDBC 드라이버 로드 DB 연결 SQL문을 이용한 쿼리 작성 (Database에 데이터를 읽거나 쓰기) DB 연결 종료 1. 자바만 활용했을 때 JDBC흐름 이해하기 JDBC 프로그래밍 흐름 JAVA에서 수행하는 방법 1. JDBC 드라이버 로드 Class.forName("클래스에 있는 드라이버 경로") 2. Database 연결 Connection c = DriverManager.getConnection("연결문자열", "id", "pw") - 연결문자열 : "jdbc:..

Spring/Spring 2022.04.26

네트워크 :) 웹의 동작방식(HTTP, TCP/IP, DNS) 큰 그림, 패킷의 얕은 이해

goal 웹의 동작 방식 큰 그림을 이해한다. (얕은 개념) 패킷을 이해한다. (얕은 개념) 1 ] 웹의 동작 방식 서버의 범위 : Database도 데이터 제공자이기 때문에 Server라고 볼 수 있다. [1] 웹 통신과 관련된 개념 용어 설명 인터넷 연결 웹에서 데이터를 보내고 받을 수 있게 해준다. TCP / IP (Transmission Control Protocol / Internet Protocal) 데이터가 어떻게 웹을 건너 여행을 해야하는지 정의하는 통신 규약 - TCP : 전송제어규약 - IP : 인터넷규약 DNS 서버 (Domain Name System Servers) 서버의 주소를 찾는 것 - 호스트의 도메인 이름((예)www.naver))을 호스트 주소((예)12,345.678.12..

Spring 이론 :) Spring Web Layer, DAO, DTO

goal DAO, DTO, 스프링 웹 계층에 대해서 이해한다. DTO 각 계층간의 데이터를 교환하기 위한 Java Object 데이터를 레이어 간에 전달하는 목적을 가지며 객체의 속성과, getter, setter만 가지고 있다. DAO(Data Access Object) DB에 접근하는 객체 즉, DB에 접근하여 DB의 데이터에 접근한다. (DB의 데이터에 접근하는 객체) 1 ] Spring Web Layer (스프링 웹 레이어) 계 층 설 명 Web Layer (Presentation Layer) - 브라우저상의 웹 클라이언트의 요청 및 응답을 처리한다. - Service Layer, Repository Layer의 Exception을 처리한다. @Controller 어노테이션을 사용하여 작성된 Co..

Spring 이론 :) Spring Container, Spring 핵심 프로그래밍 모델 3가지, Spring API가 제공하는 것과 특징

goal Spring Container, Spring 핵심 프로그래밍 모델 3가지, Spring API 1 ] Spring 1. Spring Container Spring Container 또는 Spring Context 라고 불린다. 스프링 런타임 엔진이다. 설정정보를 참고해서 애플리케이션을 구성하는 object를 생성 및 관리한다. 2. Spring 핵심 프로그래밍 모델 3가지 기 술 설 명 IoC / DI object의 생명주기와 의존관계에 대한 프로그래밍 모델이다. - IoC / DI는 객체지향 설계 원칙과 디자인 패턴의 핵심원리를 근간으로 함고 있다. - 스프링을 바르게 이해하고 효율적으로 사용하는데 기본이 되며 중요한 기술이다. 서비스 추상화 서비스 추상화 기술 덕분에 종속되지 않고 독립적인 ..

Spring :) 페이징 처리 기초를 이해한다.

goal Spring Data JPA를 이용한 페이징 처리를 이해한다. 페이징처리와 정렬 -> "findAll()를 사용한다." findAll() 메소드는 JpaRepository 인터페이스의 상위인 PagingAndSortRepository의 메소드로, 파라미터로 전달되는 Pageable이라는 타입의 객체에 의해서 실행되는 쿼리를 결정하게된다. 이 글을 읽고 잘 이해가 되지 않아 곱씹고 곱씹고 또 곱씹어보았다. 지금 이해하고 있는 상단부의 개념은, 아래와 같다. Pageable Type으로 객체를 생성할 때 어떤 조건하(어느 페이지부터, 페이지당 몇 개의 개수로, 어떤 정렬을 통해 방법을 정해주는 로직, 즉 페이지 처리에 필요한 정보를 전달)에 출력해줄 것인지 결정한다 이후, Page 인터페이스 타입을..

Spring/Spring 2022.04.06

Spring + jpa 실습 :) Entity 생성 + JpaRepository 생성(및 개념) + CRUD 사용법 이해하기

goal Entity 생성 + JpaRepository 생성(및 개념) + CRUD 사용법 이해하기 참고자료 @NoArgsConstructor, @AllArgsConstructor의 의미와 사용방법, https://athena7.tistory.com/entry/Lombok-NoArgsConstructor-AllArgsConstructor-RequiredArgsConstructor 2. annotation의 설명, https://whitepro.tistory.com/265 3. "코드로 배우는 스프링 부트 웹 프로젝트", 남가람북스, 구멍가게 코딩단 지음 1 ] java파일을 이용한 Entity 생성 (Hibernate 이용) 우선, JPA란? Java Persistence API로, Java에서 ORM ..

Spring/Spring 2022.04.05

Spring + java 이론 :) 의존성 주입의 의미와 개선 코드

goal 의존성 주입 (Dependency Injection)을 이해한다. 1 ] 의존성의 의미 1. 개발을 하다보면 의존성이 생겨나기 마련이다. class Programmer { private Coffee coffee; public Programmer() { this.coffee = new Coffee(); } public startProgramming() { this.coffee.drink(); } } 위 코드와 같이 Programmer 클래스에서 startProgramming 함수가 호출되기 위해서는 Coffee 클래스를 필요로 한다. 이것을 Programmer 클래스는 Coffee 클래스의 의존성을 가진다. 라고 말한다. 2. 위의 코드의 문제점 - 위의 코드처럼 설계할 경우, 코드의 재활용성이 ..

Spring 이론 :) Spring Data JPA를 시작하기 전에 간단한 데이터베이스 개념 - 데이터의 무결성

Goal RDBMS의 무결성(Integrity)에 대해서 이해한다. 1 ] 데이터의 무결성 데이터의 무결성은 데이터의 정확성, 일관성, 유효성이 유지되는 것을 말한다. 데이터의 무결성은 DBMS에서 관리하며 중요한 기능이다. 1. 데이터 무결성의 종류 종류 내용 개체 무결성 (Entity integrity) 모든 테이블은 primary key로 선택된 필드(column)를 가져야한다. - primary key로 선택된 필드는 고유한 값을 가져야한다. - primary key는 null값을 허용하지 않는다. 참조 무결성 (Referential integrity) 참조 관계에 있는 두 테이블의 데이터가 항상 일관된 값을 갖도록 유지되는 것을 말한다. - 참조되는 테이블의 행을 참조하는 참조키가 존재하는 한 ..

Spring 이론 :) Spring Data JPA를 시작하기 전에 간단한 데이터베이스 개념 - DDL, DML, DCL을 이해한다.

Goal DDL, DML, DCL를 이해한다. Spring JPA인데 갑자기 DBMS 관련 내용을 학습하는 이유 Spring의 JPA를 공부하다보면 application.properties를 설정하는 부분이 나온다. 이곳에 기입하는 부분에 있어서 spring.jpa.hibernate.ddl-auto를 설정하게 되는 경우가 생기는데 알아본 결과 Spring JPA에서 Hibernate를 이용해서 DDL을 생성하여 Data Table을 자동으로 생성하는 것을 돕는다고 한다. 뒷부분에서 기록하겠지만 DDL은 Data Defination Language의 약자로써 데이터베이스의 테이블의 생성, 변경, 삭제를 담당하는 명령어이다. 이외에 DML, DCL이 존재하는데 JPA를 다루는데 있어서 중요한 부분임을 직감하..

네트워크 :) TCP / IP란? OSI 7계층과 TCP / IP 4계층

goal 1. TCP/IP에 대해서 이해한다. 2. OSI 7계층과 TCP / IP 4계층을 이해한다. 1 ] TCP/IP (Transmission Control Protocol / Internet Protocal) TCP/IP는 데이터가 의도된 목적지에 닿을 수 있도록 보장해주는 통신 규약이다. TCP/IP의 이름에서 알 수 있듯이 TCP / IP에는 두가지 프로토콜로 이루어져 있으며 인터넷으로 디바이스를 연결하는 네트워크 프로토콜 집합이며 개별적인 네트워크 프로토콜로 사용될 수 있다. TCP / IP는 인터넷의 기본 통신 언어이다. TCP / IP를 사용하면 한 컴퓨터가 데이터 패킷을 컴파일하고 올바른위치로 전송하여 인터넷을 통해 다른 컴퓨터와 통신할 수 있다. 1. TCP란? 최상위 계층인 TCP는..

Spring 이론 :) Spring Data JPA를 시작하기 전에 간단한 데이터베이스 개념 - Entity, Attribute, Domain

goal Database의 간단한 용어를 이해한다 a) Entity, Attribute, Domain 1 ] Database의 Entity, Attribute, Domain Database 간단 개념 내 용 Entity 테이블 그 자체를 의미한다. - 테잉블은 업무에 필요, 데이터를 저장 및 관리한다. Attribute 테이블의 column을 의미한다. - column은 데이터의 속성을 가진다. Domain Attribuute의 값, 타입, 제약사항등에 대한 값의 범위

Spring :) RestController, RequestMapping, GetMapping, RequestParam

Goal RestController, RequestMapping, GetMapping, RequestParam의 기본 사용법을 숙지한다. Spring의 기본 구동 방식에 대해서 이해한다. package org.zerock.ex1.controller; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RequestMapping; import or..

Spring/Spring 2022.03.11

Spring 이론:) MVC패턴이란?

Goal MVC패턴의 이해 1. MVC패턴의 이해 Model, View, Controller Spring은 MVC 패턴을 사용한다. [1] MVC패턴, 왜 사용하는가? 사용자 인터페이스, 비즈니스 로직, 제어를 분리한 독립적 애플리케이션을 만들 수 있다. 출처 : https://emongfactory.tistory.com/121 MVC 컴포넌트 내용 Model 컴포넌트 데이터를 다루는 역할 - 데이터 저장소(Database)와 연동하여 사용자가 입력한 데이터나 사용자에게 출력할 데이터를 다룸 View 컴포넌트 모델이 처리한 데이터나 그 작업 결과를 가지고 사용자에게 출력할 화면을 만듦 - 생성된 화면은 웹 브라우저가 출력 - 뷰 컴포넌트는 HTML, CSS, JS를 사용하여 웹 브라우저가 출력할 UI를 ..