전체 글 187

Spring Boot 시작하기

Spring Boot가 있기 전에는 Spring Project를 설정하는 작업이 쉽지 않았다. REST API를 만든다고 가정하면, 이를 위해서 Spring Framework, Spring MVC, 그리고 JSON 바인딩 프레임워크 로깅이 필요하다. 따라서 이와 관련된 모든 의존성과 버전을 xml 파일을 통해 관리해야 했다.  이 뿐만 아니라 각각의 설정도 고려해야 하지, 단위 테스트 해야지, 비기능 요구사항도 고려해야 하지, 오류 처리 기능도 괜찮아야 하지, 그리고 모니터링도 해야 하고....  놀랍게도 Spring Boot가 없을 때는 이 모든 걸 수동으로 구현해야 했다. 때문에 프로젝트 설정이 쉽지 않았다. 게다가 이걸 한 번 하면 끝이 아니라, 새 프로젝트를 만들 때마다 반복해야 했다. 그리고 이..

Introduction

형식 언어란?형식 언어는 문자열의 집합으로, 이를 생성하거나 구분하기 위한 **규칙(문법)**에 의해 정의됩니다. 계산 이론에서는 형식 언어가 언어의 구조를 수학적으로 분석하고 처리하는 데 사용됩니다.계산 이론에서 형식 언어의 종류정규 언어문법: 정규 문법 (Type-3)오토마타: 유한 자동화기 (FA)문맥 자유 언어문법: 문맥 자유 문법 (Type-2)오토마타: 푸시다운 자동화기 (PDA)문맥 민감 언어문법: 문맥 민감 문법 (Type-1)오토마타: 선형 제한 자동화기 (LBA)재귀 열거 언어문법: 재귀 열거 문법 (Type-0)오토마타: 튜링 기계 (TM)문법문법은 규칙들의 모음으로, 형식 언어에서 문자열을 생성하거나 해석하는 데 사용됩니다. 문법은 다음과 같은 요소로 구성됩니다:터미널(Termina..

Spring과 Spring Boot로 JPA와 Hibernate 시작하기

이번 시간에는 JPA와 Hibernate, 그리고 JDBC에 대해 배워볼 것이다. 순서대로 JPA가 없었을 때 JDBC와 Spirng JDBC를 다루고, 그 뒤에 JPA를 왜 써야 하는지, 왜 Hibernate인지, 마지막으로 JPA와 Hibernate의 차이는 뭔지 배울 것이다.그리고 Spring Boot가 있으면 Spring Boot Data JPA로 JPA를 아주 쉽게 다룰 수 있는데 이 과정 또한 다룰 것이다.이 과정들은 실습을 통해 이루어질텐데 먼저 H2를 인메모리 데이터베이스로 사용해서 Spring Boot 프로젝트를 생성하고, 그 다음 H2 데이터베이스에 Course 테이블을 생성할 것이다. 테이블이 준비되면 JDBC를 사용해서 COURSE 테이블의 데이터를 활용해볼 것이다.이렇게 Sprin..

CDI, XML 겉핣기

CDI에 대해 정말 간단하게 알아보자.CDI는 인터페이스로, 구현이 없고, Spring Framework에서 구현된다.우리가 알아야 할 건 두 가지다.1. Inject는 Autowired와 비슷한 기능을 하고, 2. Named는 Component와 비슷한 기능을 한다.끝.xml에 대해 알아보자.지금까지 우리는 Java 설정을 이용했지만, 전통적인 Spring에는 Java 설정이 없어 xml을 사용했다.코드를 작성하며 xml에 대해 알아보자.일단 언제나 그랬던 것처럼 기반 클래스를 만들자. 기반 클래스의 이름은 XmlConfigurationContextLauncherApplication라고 하자.지금까지는 @Configuration을 사용해왔다. 이는 Java 설정을 사용함을 의미한다. 이번 시간에는 XM..

Sterotype Annotation

이번 게시글에서는 스테레오 타입 어노테이션에 대해 알아보자.우리가 평소에 자주 사용하던 @Component는 제네릭 어노테이션으로 모든 클래스에 사용할 수 있다.이런 @Component가 구체화된 것을 스테레오타입 어노테이션이라 할 수 있는데, @Service, @Repository, @Controller가 있다.스테레오타입 어노테이션은 @Component와 비슷하지만, 더 나아가 타입 또는 메서드의 역할을 나타낸다.@Service는 보통 어노테이션한 클래스에 비즈니스 논리가 있음을 나타낸다.@Controller는 웹 어플리케이션과 REST API에서 컨트롤러를 정의하는데 사용된다.@Repository는 Bean이 데이터베이스와 통신하는 경우에 사용된다.아래는 예시이다.package com.in28min..