오늘 만들 것 지금까지 게시물을 작성하는 API와 호출, 수정, 삭제하는 API까지 만들었습니다. 마지막으로 게시물 목록을 호출하는 API를 구현합니다. 시작 이번 글은 Lab09의 코드에 기능을 추가하는 방식으로 진행합니다. Lab09는 이전 글에서 확인할 수 있습니다. 별도의 프로젝트에서 진행하고자 하면, Lab09와 동일하게 프로젝트를 생성한 뒤 코드를 복사해서 준비합니다. Lab09의 코드를 그대로 사용한다면 아래 예제 코드의 패키지명에 유의합니다. 아래 예제 코드는 별도의 프로젝트를 생성하는 방식으로 진행합니다. DTO 추가 다음 경로의 파일을 아래와 같이 작성하여 추가합니다: /src/main/java/YOUR/DOMAIN/ARTIFACT/dto/ListDTO.java package net.j..
오늘 만들 것 지난 Lab05에서 우리는 게시물 호출 API를 작성했었습니다. 그 때 게시물 호출 API 작성하며 게시물 조회수 카운트는 나중에 구현하기 위해 주석만 남겨두었습니다. 오늘은 그 때 미뤄둔 게시물 조회수 카운트를 구현합니다. 시작 이번 글은 Lab08의 코드에 기능을 추가하는 방식으로 진행합니다. Lab08은 이전 글에서 확인할 수 있습니다. 별도의 프로젝트에서 진행하고자 하면, Lab08과 동일하게 프로젝트를 생성한 뒤 코드를 복사해서 준비합니다. Lab08의 코드를 그대로 사용한다면 아래 예제 코드의 패키지명에 유의합니다. 아래 예제 코드는 별도의 프로젝트를 생성하는 방식으로 진행합니다. DAO 수정 다음 경로의 파일을 아래와 같이 편집합니다: /src/main/java/YOUR/DOM..
오늘 만들 것 이번 글에서는 게시판 구현의 마지막 단계인 게시글 삭제를 구현합니다. 게시글 삭제는 두 가지 방법을 사용할 수 있습니다. 실제로 DB에서 삭제하거나 삭제 표기를 하는 방법입니다. 이번 글에서는 주로 사용되는 방법인 삭제 표기를 진행합니다. 시작 이번 글은 Lab06의 코드에 기능을 추가하는 방식으로 진행합니다. Lab06는 이전 글에서 확인할 수 있습니다. 별도의 프로젝트에서 진행하고자 하면, Lab06과 동일하게 프로젝트를 생성한 뒤 코드를 복사해서 준비합니다. Lab06의 코드를 그대로 사용한다면 아래 예제 코드의 패키지명에 유의합니다. 아래 예제 코드는 별도의 프로젝트를 생성하는 방식으로 진행합니다. SQL Mapper 수정 다음 경로의 파일을 아래와 같이 편집합니다: /src/mai..
오늘 만들 것 One of the most powerful features of MyBatis has always been its Dynamic SQL capabilities. mybatis - MyBatis | DynamicSQL 오늘은 게시판 API를 만들지 않습니다. MyBatis 홈페이지에도 강조된 핵심 기능 중 하나인 동적 SQL을 둘러봅니다. 아래에 제가 만든 예제도 굳이 따라 만들지 않고 눈으로만 읽어보셔도 충분합니다. 시작하기 전에: MySQL 테이블 생성 기존 예제인 lab03 테이블을 그대로 사용합니다. 데이터 변경이 필요 없기 때문에 복제하지 않습니다. 시작 이번 글은 Lab03의 코드에 기능을 추가하는 방식으로 진행합니다. Lab03는 이전 글에서 확인할 수 있습니다. 별도의 프로젝..
오늘 만들 것 이번 글에서는 게시글을 수정하는 예제입니다. 게시물 수정은 앞서 연습했던 게시물 호출과 게시물 작성을 모두 활용합니다. 작동 순서를 보면 무슨 뜻인지 이해할 수 있습니다. 1. 게시물 번호와 비밀번호를 이용해 게시물을 불러옵니다. 2. 불러온 게시물이 없다면 오류를 반환합니다. 3. 불러온 게시물이 있다면 사용자가 전달한 글 내용을 불러온 객체에 담습니다. 4. 게시물 객체를 DB로 전달하여 글을 갱신합니다. 5. 완료됨을 반환합니다. 1번이 게시물 호출, 4번이 게시물 작성을 활용하는 것을 알 수 있습니다. 게시물 수정까지 진행하면 게시판 API의 핵심은 모두 진행했다고 봐도 무방합니다! 게시물 수정 API, 지금 시작합니다. 시작 이번 글은 Lab05의 코드에 게시물 호출 API를 추가..
오늘 만들 것 이번 글에서는 게시글을 불러오는 예제를 진행합니다. 게시글 작성보다 예제가 훨씬 간단합니다. 이미 지난 글에서 데이터 호출을 한 차례 작성해보았기 때문에 설명을 줄이고, 빠르게 진행합니다. 시작 이번 글은 Lab04의 코드에 게시물 호출 API를 추가하는 예제입니다. Lab04는 이전 글에서 확인할 수 있습니다. 별도의 프로젝트에서 진행하고자 하면, Lab04와 동일하게 프로젝트를 생성한 뒤 코드를 복사해서 준비합니다. Lab04의 코드를 그대로 사용한다면 아래 예제 코드의 패키지명에 유의합니다. 아래 예제 코드는 별도의 프로젝트를 생성하는 방식으로 진행합니다. DAO 수정 다음 경로의 파일을 아래와 같이 편집합니다: /src/main/java/YOUR/DOMAIN/ARTIFACT/dao/..
오늘 만들 것 이 시리즈를 포함해 많은 개발 가이드 문서가 게시판을 만드는 과정을 설명합니다. 게시판은 데이터의 생성과 호출, 수정, 삭제를 모두 경험해 볼 수 있기 때문입니다. 이렇게 데이터를 다루는 방식들을 줄여서 CRUD(Create, Retrieve, Update, Destory)라고 한 번에 표현하기도 합니다. 이번 글부터 게시판 API 구현을 시작합니다! 보통 데이터 호출을 먼저 진행하지만, 우리는 지난 글에서 데이터 호출을 간략하게 경험했습니다. 그래서 게시글 작성 API를 먼저 제작하고, 오늘 입력한 데이터를 불러오는 API를 다음에 제작해봅니다. 시작하기 전에: MySQL 테이블 생성 Sp-re-ing 시리즈는 Spring Boot가 주제이기 때문에 DB를 다루는 내용은 최소화하려고 합니..
오늘 만들 것 많은 API는 DB로부터 데이터를 불러오거나 사용자로부터 전달받은 데이터를 DB에 저장하는 작업을 수행합니다. 오늘은 MyBatis를 이용해 DB에 접속하고, DB로부터 간단한 값을 불러오는 기능을 구현합니다. 만약 이미 MyBatis를 접해보셨거나 사용법을 알고 계신다면 굳이 이번 글은 자세히 보지 않으셔도 됩니다. 시작하기 전에: Mapper? ORM? 이미 다양한 웹 기술을 접해보았다면 ORM(Object-Relational Mapper)에 대해 이미 알고계실 수 있습니다. 그렇다면 오늘 다룰 MyBatis는 ORM 프레임워크일까요? 종종 논란이 되는 주제이지만 MyBatis는 ORM이 아니라는 의견이 많습니다. DBMS에 종속적이지 않고 SQL에 대해 잘 몰라도 각 객체의 메소드를 ..
오늘 만들 것 지난 글에서 이미 Hello, World!를 출력해보았습니다. 하지만 이번 글에서도 Hello, World!를 출력하려고 합니다. 다른 점이 있다면 이번엔 API의 형태로 데이터를 주고 받겠습니다. GET http://localhost:8080/greeting와 같이 API를 요청하면, { “id”: 1, ”content”: ”Hello, World!” }의 형태로 반환해보겠습니다. 이번 글의 상당 부분은 Pivotal Software에서 제공하는 Spring 가이드(Getting Started · Building a RESTful Web Service) 를 번역하여 작성했습니다. 시작하기 전에: DAO? DTO? VO? Spring에 대해 조사해 본 적이 있다면 DAO나 DTO, VO 등..
Sp-re-ing 최근 몇 년 동안 Node.js로 API 서버를 만들어왔습니다. Node.js은 작고 가벼우며, 빠르게 제품을 만들어낼 수 있습니다. 하지만 전 다시 Spring을 공부하고자 합니다. Node.js와 Java Spring 중에 왜 Java Spring을 선택했는지에 대해서 충분히 생각을 정리한 후에 공유하겠습니다. ‘다시, Spring’이라는 의미로 ‘Sp-re-ing’을 시작합니다. 이 연재에서는 JDK와 IDE 설치부터 Spring Boot를 이용해 간단한 게시판 API 서버를 만드는 과정까지 기록으로 남길 예정입니다. 제가 마지막으로 다뤘던 버전은 Spring3입니다. 겨우 3년의 시간이지만 당장 ‘Hello, World!’ 한 줄 띄우는 것도 어색할만큼 많은 변화가 있었던 것 같..