JVM(Java Virtual Machine) : 자바 컴파일러가 자바 소스코드를 읽어들여 자바 바이트코드로 변환시키고 그 자바 바이트코드를 실행하는 실행기로써 자바 바이트코드를 받고 기계어로 컴퓨터에게 전달하는 역할을 한다.JRE(Java Runtime Envirom
java 코드를 효율적으로 작성하기 위한 도구꼭 필수적인 것은 아니다. (메모장으로 코딩도 가능 but 오타, 문법적인 오류가 생겼을 때 본인이 직접 찾아내야 함)프로그래밍 언어에 따라 문법 검증 및 편집 편의성을 제공사람이 읽을 수 있는 텍스트 형식의 파일을 읽고 간
** 도커는 선택적인 사항일 수도 있다. os별로 설정을 해야하는 부분이 다르고 필요한 것들이 다른데 도커가 있으면 해결되는 것이 있기 때문에 도커를 사용할 수 있는 상태까지로만 설정하자! ** 도커 원리, 구성요소는 설명하지 않음! 도커란? 도커는 컨테이너 기반의
HTML : 브라우저에 표시될 내용을 기술하는 언어CSS : 표현되는 형식을 정의하는 언어JS : 브라우저에 동작을 제공하는 언어기본적으로 인터넷 브라우저가 사용하는 기술이다.(인터넷 브라우저는 그 자체로 인터넷은 아니다. HTML, CSS, JS를 해석하는 도구이다.
0-3에서 설치했던 IDE를 이용하여 스프링 부트 프로젝트를 만들어보자!먼저 여기에 접속한 후 아래와 같이 설정한다.Dependencies 부분에 add 버튼을 클릭하고 Spring Web을 추가한다.그 후 GENERATE 버튼을 눌러서 파일을 다운 받는다.다운 받고
1. Java와 Build Automation Tool Java로 이뤄진 프로젝트는 '*java' 파일에 정의된 Java Source 코드로 구성된다. javac = Java Compiler Compile: 소스코드를 기계어로 바꾸는 과정 컴파일을 다 한 후 빌드를
1. 일반적인 웹 서비스의 배포 구조 사용자 브라우저 주소창에 주소를 넣으면 주소에 해당하는 컴퓨터로 요청이 가고 요청받은 컴퓨터에서 웹 페이지를 돌려준다. 도메인을 통해 요청이 들어오면 요청의 신호는 apache서버, nginx 등과 같은 웹 서버로 신호가 들어온
1. Java의 Interface Interface를 잘 활용하면 서로 다른 구현체가 같은 목적을 위해 동작하도록 만들 수 있다. 사용하고자 하는 객체의 실제 자료형과 무관하게 동작하게 만들 수 있다. 예를 들어 자동차를 통과시키는 프로그램이 있다고 해보자. 만약
HTTP: 우리가 일반적으로 사용하는 브라우저에서 볼 수 있으며 주로 HTML 문서를 주고받는 데에 쓰이는 프로토콜SMTP: 간이 전자 우편 전송 프로토콜은 인터넷에서 이메일을 보내기 위해 이용되는 프로토콜FTP: 인터넷 망으로 연결되어 있는 멀리 떨어져 있는
Spring MVC Model-View-Controller 사용자가 View를 통해 애플리케이션이 작동하는 모습을 보게되면 자신이 할 수 있는 행동들을 Controller를 사용해서 전달하게 된다. Controller는 Model을 조작하게 된다. 모델은 Contro
1. 동적 HTML www.example.com 으로 접속하면 볼 수 있는 html 페이지이다. 위 페이지는 상황에 따라 변하는 게 없는 html 페이지이다. 이와 같은 페이지는 이미 작성이 완료되어 변하지 않는 파일들(static contents)로 이루어져 있다.
● Postman 이란? -API 개발을 보다 빠르고 쉽게 구현 할 수 있도록 도와주며, 개발된 API를 테스트하여 문서화 또는 공유 할 수 있도록 도와 주는 플랫폼 바로 설치 및 실행을 해보자! 1) 여기에 들어가서 본인의 운영체제에 맞는 파일을 다운받고 설치를
전화번호부를 예시로 들 때 전화번호를 추가하는 것은 create, 저장된 전화번호를 확인하는 것은 read, 저장된 전화번호를 수정하는 것을 update, 저장된 전화번호를 삭제하는 것은 delete 라고 볼 수 있다. CRUD 실습을 진행해보자! 먼저 프로젝트를 만든
● @Controller, @RequestMapping@controller: 스프링부트는 IoC컨테이너를 통해서 Bean을 다루게 되는데 @controller 라는 어노테이션을 달아주게 되면 이 클래스, 객체가 Bean으로써 IoC의 관리를 받게 된다.@RequestM
1. RESTful 이란? 서버의 형태에 따라 클라이언트의 형태가 고정되어 있을 경우(그 반대의 경우도) 결합성이 올라간다. 결합성이 높은 구조는 좋은 구조라고 할 수 없다. 결합성이 줄어듦으로써 성능도 좋아지고 확장성도 뛰어나지고 사용도 간편해진다. REST는 R
전체 아키텍처(구현 수준이 아니라 개념 수준에서)에서 형식 또는 메서드의 역할을 나타내는 주석이다.스프링 컨테이너가 스프링 관리 컴포넌트로 식별하게 해주는 단순한 마커다. 이러한 마커는 외부 처리 도구에서 사용되거나 관점 지향 프로그래밍 컨텍스트에서 포인트컷에 대한 레
1. 관계형 데이터베이스와 ERD 행과 열로 이루어진 각각의 테이블에서 고유값(Primary Key)을 참조하여 서로 종속되는 관계(=연결)로 표현하는 데이터 베이스 구조를 관계형 데이터베이스라고 한다. coodd의 12규칙을 따르고자 하는 데이터베이스를 뜻하기도
Mybatis란? 객체 지향 언어인 자바의 관계형 데이터베이스 프로그래밍을 좀 더 쉽게 할 수 있게 도와 주는 개발 프레임 워크 Database를 사용하는 이유? java 클래스를 통해 데이터를 다루는데(POJO) java코드로 작성한 List, HashMap 등은
실습 바로 실습으로 진행해보자! 위와 같이 프로젝트를 생성한다. 그리고 mysql workbench에서 새로운 유저와 새로운 스키마를 만든다. 스키마 이름은 demojpaschema 로 했다. 유저이름은 demo_jpa로 만들었다. 그리고 권한 설정을 해준다.
\-관계형 데이터베이스 : 키와 값들의 간단한 관계를 테이블화 시킨 매우 간단한 원칙의 전산정보 데이터베이스 (Primary Key가 존재!)위와 같은 테이블을 예시로 들 수 있다. 오른쪽 테이블에서의 Foreign Key는 왼쪽 테이블에서의 Primary Key이다.
4-3 글의 연장선으로 진행된다. 테스트 클래스를 지운다! 먼저 컨트롤러를 만들어보자. PostController.java 만듬 다음으로 서비스 만든다. PostService.java 만듬 PostDao.java 만듬 dto 가 없다. entity가 있지. 근
1. 설정 파일 작성 지금까지 개발을 했을 때 본인읜 컴퓨터 내부에서 모든 것이 진행된다. jdk, mysql, intelliJ 등을 갖춰서 본인의 컴퓨터에 세팅을 한다. 여기에 맞춰서 어떤 데이터베이스를 사용할 지 등을 정한다. 그러나 실제 서비스를 상용단계로 가
1. Logging의 기본 개념들 logging 이란 정보를 제공하는 일련의 기록인 로그(log)를 생성하도록 시스템을 작성하는 활동을 말한다. (로그는 프로그램의 진행을 위해 사용한다.) log level 로는 trace, debug, info, warn, err
1. Aspect Oriented Programming (관점 지향 프로그래밍) 로깅과 같이 로그는 남기는 기능은 비즈니스 로직에 꼭 포함되어야 한다. 그러나 그것이 연속적으로 똑같이 반복되면 소스코드가 지저분하고 복잡해진다. 그래서 등장한 개념이..! AOP 이다
먼저 게시글을 정의하기 위해서 만들었던 PostDto.java 클래스를 살펴보자.어떤 식으로 데이터를 넣어야하는지에 대한 정보가 없기 때문에 사용자의 입력을 검증하는 부분은 매우 중요하다.스프링부트 프레임워크에서는 Jakarta Bean Validation이라는 명세를
1. Java의 예외처리 > Java의 NullPointerException은 런타임 예외이다. Java는 개체 참조에 특별한 null 값을 할당한다. 프로그램이 null 값으로 설정된 개체 참조를 사용하려고하면 이때 예외가 throw된다. 아래와 같이 try-ca
1. Filter & Interceptor 기본 개념
Authentication은 정형적인 방법이 있는데 Authorization은 개발자의 역량에 달려있다.브라우저가 있고 이 브라우저에서 들고 있을 정보를 쿠키 형태로 저장한다. (쿠키는 브라우저가 설정하기도 하고 요청을 보내는 서버에서 이 정보를 들고있으라고 전송해주기
간단한 로그인 프로젝트를 구현해보자! 아래와 같이 설정을 마친 후 프로젝트를 실행시킨다. 아래와 같이 build.gradle에서 security부분을 일단 주석처리를 하고 아래와 같이 간단한 컨트롤러를 하나 만든 후 프로젝트를 실행시키고 해당 url에 접속하면
7-2에서 진행한 프로젝트에서 이어서 진행해보자. 먼저 WebSecurityConfig.java에서 원시 암호를 인코딩해주는 메소드를 추가한다. 그리고 실제 사용자 관리를 정의하기 위해 7-2에서와 마찬가지로 configure 메소드를 오버라이드 한 후 아래와 같이
1. Social Login, OAuth2 네이버에 한 번 로그인 함으로써 여러 서비스들을 이용할 수 있다. > Single Sign On : 통합 인증은 한 번의 인증 과정으로 여러 컴퓨터 상의 자원을 이용 가능하게 하는 인증 기능이다. 싱글 사인온, 단일 계정
서버에서 한 번 응답을 보내면 http 요청응답의 관계가 끝나게 된다. 따라서 단발성 통신이 일어난다. 한쪽이 요청을 보냈으면 반대쪽에서 요청을 보내라고 할 수는 없다.하나의 서버는 1초에 5번 요청을 받을 수 있다. 만약 1초의 10번의 요청이 들어온다면 부하가 걸리
Job Queue와 Publish Subscribe pattern을 구현해보자. start.spring.io로 이동해서 아래와 같이 프로젝트를 생성한 후 실행한다. Message Broker에서 큐에 연결되어 있는 두 서버에서 메시지를 생성하는 주체를 produce
1. Key-Value Database > 레디스는 Remote Dictionary Server의 약자로서, "키-값" 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 비관계형 데이터베이스 관리 시스템이다. ** 외부 캐시로 사용할 때 1) 로그