본문 바로가기

전체 글

(121)
Node.js MySQL 연동 (Express) Node.js에서 MySQL을 연동해볼게요. 연동하고 select, insert, update, delete 쿼리까지 실행시켜 볼거에요. 연동하고 사용하는 것 자체는 매우 간단해요. 우선, mysql2 모듈을 설치해줍니다. npm i mysql2 pool.js const mysql = require('mysql2/promise') const pool = mysql.createPool({ host: 'localhost', port: 3306, user: 'demouser', password: 'demo12#$', database: 'demo_db', connectionLimit: 10 }) module.exports = pool router 쿼리를 어떻게 사용하는지 볼 수 있도록 아주 간단하게 CRUD 기..
자바 빌더 패턴 (Java Builder Pattern) 장단점 우선, 빌더 패턴과 비교되는 패턴이 두 가지가 있어요. 두 가지 패턴은 용어만 거창하지 이미 알고 계실거에요. 점층적 생성자 패턴 : 생성자로 필드를 세팅, ex) new UserInfo(userId, password); 자바빈 패턴 : Setter 메서드로 필드를 세팅, ex) userInfo.set(userId); 빌더 패턴 이제, 빌더 패턴을 직접 구현해볼게요. Builder 패턴 직접 구현 @Getter public class UserInfo { private String userId; private String nickname; private String password; private String email; public static UserInfoBuilder builder() { retur..
JPA 작성자, 수정자 자동 세팅 Auditor JPA를 활용할 때 게시글의 작성자,수정자 아이디를 자동적으로 세팅해주고 싶은 경우가 있어요. 비즈니스 로직단에서 일일이 세팅하는 수고를 덜어주죠. 이 예제에서는 알아보기 쉽도록 아주 기본만 작성하였습니다. AuditorAwareConfig 소스 설명 드릴게요. UserInfo는 세션 아이디를 담아둔 객체입니다. 테이블에 넣어줄 로그인 사용자 ID를 Optional 클래스에 세팅하여 리턴하면 끝입니다. AuditorAware를 구현할 때 대부분의 예제에서는 별도의 클래스를 만들어서 임포트 받지만 여기서는 최대한 간단해보이도록 한 소스 파일에 직접 구현했습니다. @Resource private UserInfo userInfo; Long userId = userInfo.getIdIsLogin(); 로그인 체..
JPA @ManyToOne Join (Only JpaRepository) JPA에서 @ManyToOne 어노테이션으로 조인한 Entity를 Join으로 조회하려고 해요. Inner Join과 Left Outer Join 모두 다뤄보겠습니다. JpaRepository를 이용할거구요. Native Query는 사용하지 않을거에요. 작업 환경은 Spring Boot 2.1.9 + JDK 11 버전입니다. 1. BoardEntity @Entity @Table(name = "board") @Getter @Setter public class BoardEntity implements Serializable { private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.IDENTI..
Eclipse(이클립스) git remote push 이클립스에서 원격 Git 저장소에 최초 푸시하는 방법에 대해 포스팅할게요. 1. Share Project 프로젝트 우클릭 - Team - Share Project 2. Repository 경로 지정 Use or create repository in parent folder of project 클릭 3. Remote repository 설정 4. Remote URI 설정 5. gitignore 설정 이미 .gitignore 파일이 생성되어 있을거에요. bin/ 폴더도 커밋되지 않도록 설정하겠습니다. 6. Commit and Push 7. Remote Repository 직접 확인
Docker Mac 설치, 도커 다운로드 Mac에서 도커를 설치해볼게요. 1. 시스템 요구조건 확인 공식 홈페이지에 접속합니다. 설치하기 전에 시스템 사양을 확인해주시고, 사용할 수 있다면 다운로드 받아주세요. Download from Docker Hub로 접속하고 가입하고, 이메일 인증하고, 다운로드 받으시면 됩니다. (2019-10-24 기준) 이 부분에 대한 자세한 설명은 생략할게요. https://docs.docker.com/docker-for-mac/install/ Install Docker Desktop on Mac To download Docker Desktop, go to Docker Hub and sign in with your Docker ID. Download from Docker Hub What to know before ..
Eclipse(이클립스) git clone 깃에 올라가 있는 프로젝트를 로컬에 복제하여 이클립스에 프로젝트를 세팅해보려고 해요. 예제 프로젝트는 Spring Boot로 하였습니다. 1. git clone url 이클립스에서 받을 수도 있지만 터미널이 더 편하실거에요. 원하는 경로에 본인의 git clone url 명령어를 실행해주세요. 2. import project clone 받은 프로젝트를 임포트해주세요. 3. project 설정 Gradle 프로젝트네요. 프로젝트 우클릭 - Configure - Add Gradle Nature 설정해주세요. Maven은 Convert to Maven Project로 설정하시면 됩니다.
Docker MySQL for Kitematic MySQL 컨테이너 설치 root 패스워드 설정 컨테이너를 설치, 실행하고 로그를 확인하면 이런 로그를 확인할 수 있어요. ROOT 계정의 패스워드를 지정해줘야합니다. Settings - General - Environment Variables 리스트에 MYSQL_ROOT_PASSWORD를 추가해주세요. 그리고 하단의 SAVE 버튼을 누릅니다. Published Port 설정 터미널 접속 exec를 클릭하면 MySQL 서버가 설치된 컨테이너에 터미널 접속을 할 수 있어요. 클라이언트 접속 mysql 8+ 버전을 사용하셨다면 이런 오류가 나올 수 있어요. Public Key Retrieval is not allowed 아래와 같이 접속 클라이언트 쪽에서 설정을 해주어야해요. allowPublicKeyRet..