전체 글
[Oracle] BETWEEN ... AND 사용
2020.03.19특정 범위의 값을 조회할 때 BETWEEN ... AND 구문을 사용하면 조금 더 읽기 쉬운 구문을 작성할 수 있습니다. 기본 사용법 특정 범위의 임금을 받는 직원을 찾기 위해서 아래와 같이 작성할 수 있습니다. SELECT * FROM EMP WHERE SAL BETWEEN 1250 AND 2450 위 SQL문은 아래와 완전하게 동일한 작동을 합니다. SELECT * FROM EMP WHERE SAL >= 1250 AND SAL
[Sp-re-ing] 06 - 게시판 구현하기 (3) - 게시물 수정 API
2020.03.17오늘 만들 것 이번 글에서는 게시글을 수정하는 예제입니다. 게시물 수정은 앞서 연습했던 게시물 호출과 게시물 작성을 모두 활용합니다. 작동 순서를 보면 무슨 뜻인지 이해할 수 있습니다. 1. 게시물 번호와 비밀번호를 이용해 게시물을 불러옵니다. 2. 불러온 게시물이 없다면 오류를 반환합니다. 3. 불러온 게시물이 있다면 사용자가 전달한 글 내용을 불러온 객체에 담습니다. 4. 게시물 객체를 DB로 전달하여 글을 갱신합니다. 5. 완료됨을 반환합니다. 1번이 게시물 호출, 4번이 게시물 작성을 활용하는 것을 알 수 있습니다. 게시물 수정까지 진행하면 게시판 API의 핵심은 모두 진행했다고 봐도 무방합니다! 게시물 수정 API, 지금 시작합니다. 시작 이번 글은 Lab05의 코드에 게시물 호출 API를 추가..
[Sp-re-ing] 05 - 게시판 구현하기 (2) - 게시물 호출 API
2020.03.03오늘 만들 것 이번 글에서는 게시글을 불러오는 예제를 진행합니다. 게시글 작성보다 예제가 훨씬 간단합니다. 이미 지난 글에서 데이터 호출을 한 차례 작성해보았기 때문에 설명을 줄이고, 빠르게 진행합니다. 시작 이번 글은 Lab04의 코드에 게시물 호출 API를 추가하는 예제입니다. Lab04는 이전 글에서 확인할 수 있습니다. 별도의 프로젝트에서 진행하고자 하면, Lab04와 동일하게 프로젝트를 생성한 뒤 코드를 복사해서 준비합니다. Lab04의 코드를 그대로 사용한다면 아래 예제 코드의 패키지명에 유의합니다. 아래 예제 코드는 별도의 프로젝트를 생성하는 방식으로 진행합니다. DAO 수정 다음 경로의 파일을 아래와 같이 편집합니다: /src/main/java/YOUR/DOMAIN/ARTIFACT/dao/..
[Sp-re-ing] 04 - 게시판 구현하기 (1) - 게시물 작성 API
2020.02.18오늘 만들 것 이 시리즈를 포함해 많은 개발 가이드 문서가 게시판을 만드는 과정을 설명합니다. 게시판은 데이터의 생성과 호출, 수정, 삭제를 모두 경험해 볼 수 있기 때문입니다. 이렇게 데이터를 다루는 방식들을 줄여서 CRUD(Create, Retrieve, Update, Destory)라고 한 번에 표현하기도 합니다. 이번 글부터 게시판 API 구현을 시작합니다! 보통 데이터 호출을 먼저 진행하지만, 우리는 지난 글에서 데이터 호출을 간략하게 경험했습니다. 그래서 게시글 작성 API를 먼저 제작하고, 오늘 입력한 데이터를 불러오는 API를 다음에 제작해봅니다. 시작하기 전에: MySQL 테이블 생성 Sp-re-ing 시리즈는 Spring Boot가 주제이기 때문에 DB를 다루는 내용은 최소화하려고 합니..
macOS 터미널에서 Touch ID로 권한 인증하기
2020.02.11Touch Bar가 장착된 MacBook Pro 모델의 경우 키보드 상단의 Touch Bar 오른쪽에 Touch ID 버튼이 있습니다. 이 Touch ID 버튼은 관리자 권한이 필요한 경우 복잡한 암호를 입력하지 않고도 간편하게 관리자 인증을 할 수 있도록 도와줍니다. 하지만 터미널 환경에서는 Touch ID를 사용하지 못하고 매번 암호를 직접 입력해야 했습니다. 이번 글에서는 macOS 터미널에서 sudo를 사용할 때 Touch ID로 권한 인증하는 방법을 알아봅니다. 설정 변경하기 터미널에서 아래 명령어를 입력해 sudo에 대한 설정을 불러옵니다. 암호를 한 차례 입력해야 하는데 macOS를 업데이트 전에 터미널에서 입력하는 마지막 암호가 될 것입니다. sudo nano /etc/pam.d/sudo ..
[Sp-re-ing] 03 - MyBatis를 이용한 DB연동
2020.02.04오늘 만들 것 많은 API는 DB로부터 데이터를 불러오거나 사용자로부터 전달받은 데이터를 DB에 저장하는 작업을 수행합니다. 오늘은 MyBatis를 이용해 DB에 접속하고, DB로부터 간단한 값을 불러오는 기능을 구현합니다. 만약 이미 MyBatis를 접해보셨거나 사용법을 알고 계신다면 굳이 이번 글은 자세히 보지 않으셔도 됩니다. 시작하기 전에: Mapper? ORM? 이미 다양한 웹 기술을 접해보았다면 ORM(Object-Relational Mapper)에 대해 이미 알고계실 수 있습니다. 그렇다면 오늘 다룰 MyBatis는 ORM 프레임워크일까요? 종종 논란이 되는 주제이지만 MyBatis는 ORM이 아니라는 의견이 많습니다. DBMS에 종속적이지 않고 SQL에 대해 잘 몰라도 각 객체의 메소드를 ..
[Sp-re-ing] 02 - JSON으로 반환하는 Hello, World!
2020.01.21오늘 만들 것 지난 글에서 이미 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] 01 - 개발 환경 설정부터 Hello, World까지.
2020.01.07Sp-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!’ 한 줄 띄우는 것도 어색할만큼 많은 변화가 있었던 것 같..
10분만에 구성하기 - AWS Lambda를 고정 IP로 사용하기 (3)
2019.10.21최근 AWS Lambda(이하 Lambda)를 활용해 API Backend를 개발하고 있습니다. 처음하는 일은 늘 어려운 법이지만 이틀 내내 어두운 터널에서 벽을 짚으며 걷는 느낌을 줬던 이슈를 정리해봅니다. 만약 어떤 설정이 필요한지 이해가 필요하다면 이 글을 참고해주세요. 만약 수동으로 생성하고 싶거나, 기존 VPC를 활용해서 구성해야 한다면 이 글을 참고해주세요. 마법사를 이용해 빠르게 시작하기 Elastic IP 발급하기 먼저 고정 IP로 사용할 Elastic IP가 필요합니다. 좌측 메뉴에서 탄력적 IP를 선택하고, 새 주소 할당을 눌러서 Elastic IP를 발급받습니다. 정보 입력하기 좌측 최상단에 있는 대시보드를 선택하면 우측에 VPC 마법사 시작 버튼이 표시됩니다. 해당 버튼을 눌러서 마..
Lambda 구성하기 - AWS Lambda를 고정 IP로 사용하기 (2)
2019.10.18최근 AWS Lambda(이하 Lambda)를 활용해 API Backend를 개발하고 있습니다. 처음하는 일은 늘 어려운 법이지만 이틀 내내 어두운 터널에서 벽을 짚으며 걷는 느낌을 줬던 이슈를 정리해봅니다. 만약 왜 이런 설정을 하는지 이해가 필요하다면 이전 글을 참고해주세요. 만약 지금 바로 10분 만에 구성해야 한다면 다음 글을 참고해주세요. 설정을 생각해보자 지난 글에서 구성도를 현실에 빗대어 생각해봤습니다. 만약 새 건물을 짓고 PC에 인터넷을 연결한다면 아래 과정이 필요할겁니다. 땅 사고 건물 허가 받기: VPC 생성 건물 (층) 올리기: Private Subnet 생성 전산실 만들기: Public Subnet 생성 인터넷 계약하고 모뎀 임대하기: Internet Gateway 생성 공유기 구..
VPC 이해하기 - AWS Lambda를 고정 IP로 사용하기 (1)
2019.10.14최근 AWS Lambda(이하 Lambda)를 활용해 API Backend를 개발하고 있습니다. 처음하는 일은 늘 어려운 법이지만 이틀 내내 어두운 터널에서 벽을 짚으며 걷는 느낌을 줬던 이슈를 정리해봅니다. 만약 지금 바로 AWS Lambda에 고정 IP를 연결하는 방법이 필요하다면 이 글을 참고해주세요. 만약 수동으로 생성하고 싶거나, 기존 VPC를 활용해서 구성해야 한다면 이 글을 참고해주세요. DB에 접속해야 되는데… 가장 기본이 되는 로그인 기능 구현부터 막혔습니다. DB로부터 사용자 정보를 불러와야하는데 DB에 접속할 수 없었습니다. 원인은 금방 찾을 수 있었는데, DB 서버에 설정한 방화벽에서 차단되기 때문이었습니다. 몇 가지 방법을 검토했지만 공통적으로 VPC 설정이 필요했습니다. 그래서 ..
Markdown: 아름다운 문서를 쉽고 빠르게.
2019.10.07문서를 작성하는 것은 생각보다 시간이 드는 일입니다. 내용을 정리하고, 구조화하고, 문장을 쓰고, 서식도 다듬어줘야죠. 하지만 Markdown(마크다운) 문법을 활용하면 이 과정을 상당히 간소화 할 수 있습니다. 글의 구조를 짜고, 문장으로 써내리기만 하면 됩니다. 이번 글에서는 Markdown의 특징과 문법을 공유합니다. Markdown? Markdown을 소개하기에 앞서 먼저 Markup(마크업)을 이야기해볼까 합니다. 개발을 간단히라도 배웠던 사람이라면 HTML 문법을 배우셨을겁니다. HTML은 대표적인 Markup언어입니다. 왜 Markup이라고 하는지는 문법을 보면 이해할 수 있습니다. Hello, World! 위 문법과 같이 내용이 Mark로 둘러싸인 형태를 가지고 있기 때문입니다. Markd..