분류 전체보기
Electron 시작하기 - 01 - 천 줄 코드도 Hello, World! 부터.
2022.03.10Electron은 Node.js 개발자에겐 정말 강력한 무기입니다. 웹 사이트를 구성하던 기술 그대로 Desktop Application을 만들 수 있게 해주기 때문이죠. 이미 Electron은 충분히 알려져있기 때문에 공식 사이트에 있는 글로 소개를 갈음합니다. Electron? Electron은 JavaScript와 HTML, CSS를 이용해 Desktop Application을 제작할 수 있는 프레임워크입니다. Chromium과 Node.js를 바이너리에 내장하여, Electron은 하나의 JavaScript 코드로 Windows와 macOS, Linux에서 모두 작동할 수 있는 크로스 플랫폼 App을 만들 수 있도록 도와줍니다. Native app 개발 경험이 필요하지 않죠. Intoroduct..
[Sp-re-ing] 10 - 게시판 구현하기 (6) - 게시물 목록 API
2020.07.02오늘 만들 것 지금까지 게시물을 작성하는 API와 호출, 수정, 삭제하는 API까지 만들었습니다. 마지막으로 게시물 목록을 호출하는 API를 구현합니다. 시작 이번 글은 Lab09의 코드에 기능을 추가하는 방식으로 진행합니다. Lab09는 이전 글에서 확인할 수 있습니다. 별도의 프로젝트에서 진행하고자 하면, Lab09와 동일하게 프로젝트를 생성한 뒤 코드를 복사해서 준비합니다. Lab09의 코드를 그대로 사용한다면 아래 예제 코드의 패키지명에 유의합니다. 아래 예제 코드는 별도의 프로젝트를 생성하는 방식으로 진행합니다. DTO 추가 다음 경로의 파일을 아래와 같이 작성하여 추가합니다: /src/main/java/YOUR/DOMAIN/ARTIFACT/dto/ListDTO.java package net.j..
[Sp-re-ing] 09 - 게시판 구현하기 (5) - 게시물 호출 API 확장
2020.05.19오늘 만들 것 지난 Lab05에서 우리는 게시물 호출 API를 작성했었습니다. 그 때 게시물 호출 API 작성하며 게시물 조회수 카운트는 나중에 구현하기 위해 주석만 남겨두었습니다. 오늘은 그 때 미뤄둔 게시물 조회수 카운트를 구현합니다. 시작 이번 글은 Lab08의 코드에 기능을 추가하는 방식으로 진행합니다. Lab08은 이전 글에서 확인할 수 있습니다. 별도의 프로젝트에서 진행하고자 하면, Lab08과 동일하게 프로젝트를 생성한 뒤 코드를 복사해서 준비합니다. Lab08의 코드를 그대로 사용한다면 아래 예제 코드의 패키지명에 유의합니다. 아래 예제 코드는 별도의 프로젝트를 생성하는 방식으로 진행합니다. DAO 수정 다음 경로의 파일을 아래와 같이 편집합니다: /src/main/java/YOUR/DOM..
[Sp-re-ing] 08 - 게시판 구현하기 (4) - 게시물 삭제 API
2020.05.06오늘 만들 것 이번 글에서는 게시판 구현의 마지막 단계인 게시글 삭제를 구현합니다. 게시글 삭제는 두 가지 방법을 사용할 수 있습니다. 실제로 DB에서 삭제하거나 삭제 표기를 하는 방법입니다. 이번 글에서는 주로 사용되는 방법인 삭제 표기를 진행합니다. 시작 이번 글은 Lab06의 코드에 기능을 추가하는 방식으로 진행합니다. Lab06는 이전 글에서 확인할 수 있습니다. 별도의 프로젝트에서 진행하고자 하면, Lab06과 동일하게 프로젝트를 생성한 뒤 코드를 복사해서 준비합니다. Lab06의 코드를 그대로 사용한다면 아래 예제 코드의 패키지명에 유의합니다. 아래 예제 코드는 별도의 프로젝트를 생성하는 방식으로 진행합니다. SQL Mapper 수정 다음 경로의 파일을 아래와 같이 편집합니다: /src/mai..
[Sp-re-ing] 07 - 동적 SQL
2020.04.21오늘 만들 것 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는 이전 글에서 확인할 수 있습니다. 별도의 프로젝..
[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 등..