Circular View path error

|

만약

Circular view path [list]: would dispatch back to the current handler URL [/list] again.

와 같은 오류가 발생하면 build.gradle.kts 파일에

implementation("org.springframework.boot:spring-boot-starter-thymeleaf")

종속성 추가가 되어 있는 지를 체크해 볼 필요가 있습니다.

그리고 잊지 말고 gradle sync를 해줘야 반영이 됩니다.

Property 읽어오기

|

yaml 파일 생성

application.yaml

resources 디렉토리 아래에 application.yaml 파일을 생성하고 다음 내용을 입력합니다.

property:
  snowdeer:
    age: 40
    name: snowdeer
    address: Seoul


값 읽어오기

Controller 클래스에서 값을 바로 읽어들여도 상관없지만, 여기서는 Wrapping 클래스를 별도로 생성했습니다.

AppProperties.kt

import org.springframework.beans.factory.annotation.Value
import org.springframework.stereotype.Component

@Component
class AppProperties {

    @Value("\${property.snowdeer.age}")
    lateinit var age: Integer

    @Value("\${property.snowdeer.name}")
    lateinit var name: String

    @Value("\${property.snowdeer.address}")
    lateinit var address: String

}


HelloController.kt

import com.snowdeer.sample.board.AppProperties
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.RestController

@RestController
class HelloController {

    @Autowired
    lateinit var appProperties: AppProperties

    @GetMapping
    fun hello(): String {
        return "Hello ${appProperties.name}"
    }
}

별도 Front-end 서버없이 구동하는 React Hello World

|

Hello.html

<head>
    <script src="https://fb.me/react-0.14.3.js"></script>
    <script src="https://fb.me/react-dom-0.14.3.js"></script>
</head>

<body>
<div id="content">ccc</div>
<script>
    var h1=React.createElement('h1', null, 'Hello, snowdeer')
    ReactDOM.render(
        h1,
        document.getElementById('content')
    )
</script>

</body>

React MacOS에 설치하는 방법

|

React 설치

brew를 이용해서 설치하는 방법을 포스팅합니다.


brew 설치

$ xcode-select –install

$ ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”


NodeJS 설치

brew install node


npm 업데이트

만약 npm 버전이 낮은 경우는 아래 명령어를 이용해서 최신 버전으로 업데이트할 수 있습니다.

npm install -g npm


yarn 설치

brew install yarn


create-react-app 설치

npm install -g create-react-app


테스트 프로젝트 생성

create-react-app snowdeerapp


실행

cd snowdeerapp
yarn start

그 이후 http://localhost:3000에 접속해서 확인할 수 있습니다.

REST 소개

|

REST 사용방법

REST는 웹 등에서 사용하는 통신 네트워크 아키텍처입니다. 웹은 전송 방식으로 HTTP를 사용하며, 식별 방법으로는 URI를 사용합니다. RESTHTTPURI의 단순하고 간결한 장점을 활용한 네트워크 아키텍처입니다. REST의 목적은 다음과 같습니다.

  • 인터페이스의 범용성
  • 개별 구성 요소의 독립적 배포
  • 구성 요소의 확장성
  • 중간적 구성 요소를 이용한 보안성, 응답 지연 감소, 레거시 시스템에 대한 캡슐화


일관된 인터페이스

인터페이스의 일관성에는 다음 요소가 있습니다.

  • 자원 식별
  • 메시지를 이용한 리소스 제어
  • 자기 서술적 메시지
  • HATEOAS(Hypermedia As The Engine Of Application State)

HATEOAS는 클라이언트에 응답을 할 때 단순한 결과 데이터만 리턴하는 것이 아닌, URI 정보를 함께 포함해야 한다는 원칙입니다.

REST의 제약 조건들을 지키면서 REST 아키텍처를 만드는 것을 RESTful이라고 합니다.


URL과 URI

URL은 리소스를 가져오는 위치이며, URI는 리소스의 위치와 이름을 식별하는 표준입니다. 예를 들면 다음과 같습니다.

http://localhost:8080/book.pdf

URL은 위와 같이 리소스의 위치를 표현합니다. 그리고 URI는 아래와 같이 리소스의 이름과 위치를 식별합니다.

http://localhost:8080/api/books/100

URLURI의 하위 개념입니다.


URI 규격

URI는 명사를 사용하며 동사 사용은 자제하는 것이 좋습니다. 만약 동사를 표현하고 싶을 때는 HTTP 메소드인 GET, POST, PUT, DELETE 등으로 대체하는 것이 좋습니다.

URI에서는 명사에 단수형보다는 복수형을 사용하는 것이 좋습니다.