개발 환경 구축

1. macOS 초기 세팅

1.1 파일 확장자 표시하기

Finder(폴더창) 환경 설정을 열고 고급 탭에서 “모든 파일 확장자 보기”를 선택

1.2 Finder 추가 설정

시작 위치를 사용자 홈 디렉토리로 설정

사이드 바에 홈 디렉토리 표시

1.3 Xcode Command Line Tool 설치

각종 개발 환경의 기초가 되는 터미널 확장 도구

1) 터미널 실행하기

Cmd+Space를 누르고 터미널을 검색하여 터미널.app을 실행한다.

2) 설치 명령어 수행

xcode-select --install

3) 설치 진행

터미널에서는 아무런 결과도 표시되지 않고 팝업창을 통해 설치가 진행된다

2. Git

2.1 Git 클라이언트 설치

windows

https://git-scm.com/

mac

xcode-select --install

2.2 Git 전역 설정

명령 프롬포트 혹은 터미널에서 사용자 정보를 입력한다 특별한 문제가 없다면 명령어 입력 후 아무런 내용도 표시되지 않는다

git config --global user.name "parkjaehan"

git config --global user.email "mitshowme@naver.com"

2.3 인증서 설정

1) 인증서 생성하기

ssh-keygen -t ed25519 -C "mitshowme@naver.com"

명령어 입력후 진행되는 과정에서는 엔터키만 입력한다. 정상적으로 완료된다면 사용자 홈디렉토리 안에 .ssh라는 이름의 폴더가 생성되고 그 안에 id_ed25519, id_ed25519.pub 인 두 개의 파일이 생성된다. 이 폴더나 파일들이 삭제될 경우 인증서를 새로 생성해야 한다.

2) mac 홈 디렉토리

mac에서는 홈 디렉토리로 가더라도 .ssh 폴더가 보이지 않는다. (기본적으로 mac에서는 .이 붙으면 숨김폴더로 인식하기 때문) 터미널에서 직접 열어줘야 한다

open ~/.ssh

3) 인증서를 github에 등록

github에 로그인 한 후 화면 우측상단의 계정 아이콘을 클릭하여 settings 메뉴를 선택한다. 페이지 이동 후 왼쪽메뉴에서 SSH and GPG keys 메뉴 선택 화면 오른쪽의 New SSH Key 버튼을 클릭하여 페이지를 이동한다. 페이지 이동 후 내용 입력

  • Title : 아무 내용이나 입력
  • Key type : 기본값 유지
  • Key : id_ed25519.pub 파일의 내용을 복사 후 붙여 넣는다.

2.4 Git 명령어

3. VSCode

3.1 확장(extension)

4. Node.js

4.1 설치확인

윈도우의 경우 명령프롬프트 실행

WinKey + R > cmd (엔터)

의 경우 터미널 실행

Cmd + Space > 터미널 검색

명령어 수행

node --version

결과값이 출력되지 않을 경우 https://nodejs.org 에서 프로그램 내려받아 설치 필요함.

대부분의 경우 LTS 버전 권장.

Mac M1 버전의 경우 17.1 이상 버전 필요함.

설치 완료 후 열어두었던 명령프롬프트나 터미널을 종료하고 재시작.

앞서 수행한 버전 확인 명령어를 통해 설치 완료 확인

5. JDK(Java Development Kit) 설치

https://jdk.java.net/archive/ 에서 다운 받을 수 있다 2024.08 기준 Spring3와 호환되는 버전은 17 이므로 버전 17.0.2 설치

5.1 현재 컴퓨터에 JDK 설치 여부 확인

javac -version

5.2 JDK 설치

windows

OpenJDK는 압축파일 형태로 배포된다. 내려받은 파일을 적절한 위치에 압축해제한다

C\jdk-17.0.2

mac

(1.1) Homebrew 패키지 매니저 설치

macOS에서 패키지 관리를 위해 Homebrew를 설치한다. Terminal에서 아래 명령어를 입력하여 Homebrew를 설치한다.

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

(1.2) 안내를 따라 다음 3줄을 실행

(1.3) 최신 Homebrew가 잘 설치되었는지 확인

brew --version
Homebrew 4.4.15

which brew
/opt/homebrew/bin/brew

2. OpenJDK 17 설치

Terminal에서 다음 명령어를 실행하여 OpenJDK 17을 설치

brew install openjdk@17

이 명령어로 /opt/homebrew/opt/openjdk@17 경로에 JDK 17이 설치된다.

3. 환경 변수 설정

(3.1) OpenJDK 17을 사용하기 위해 환경 변수를 설정해준다. Terminal에서 다음 명령어를 실행한다



nano ~/.zshrc
code ~/.zshrc

(3.2) 파일을 열고 아래와 같이 JAVA_HOMEPATH 환경변수를 추가한다

export JAVA_HOME="/opt/homebrew/opt/openjdk@17" 
export PATH="$JAVA_HOME/bin:$PATH"

JAVA_HOME 경로는 JDK 17의 설치 경로로 설정되어야 한다

(3.4) 변경 사항 적용

환경변수 설정을 저장한 후, 변경 사항을 적용

source ~/.zshrc

4. 설치된 Java 버전 확인

환경변수를 설정한 후, Java가 제대로 설치되었는지 확인한다

java --version

예시 출력: openjdk 17.0.2 2021-09-14 OpenJDK Runtime Environment (build 17.0.2+8) OpenJDK 64-Bit Server VM (build 17.0.2+8, mixed mode)

5. java_home 명령어로 JDK 경로 확인

macOS에서는 java_home 명령어를 사용하여 설치된 JDK의 경로를 확인할 수 있다.

/usr/libexec/java_home -V

이 명령어를 실행하면 설치된 모든 JDK 버전과 해당 경로가 출력된다

6. Gradle

6.1 Gradle 설치

windows

https://gradle.org/releases/ binary-only

다운로드 받은 파일의 압축을 적절한 위치에 해제한다. C:\gradle

Path 환경 변수에 gradle의 bin 폴더 경로를 추가한다.

mac

brew install gradle

6.2 설치 확인(windows, mac 공통)

gradle -v

6.3 라이브러리 참조

(1) 필요한 라이브러리 검색

먼저 mvnrepository에서 필요한 라이브러리를 검색한다. 예시로 gson 라이브러리를 검색

  • gson을 검색한 후, 검색 결과에서 com.google.code.gson » gson의 최신 버전(2.11.0) 세부 페이지로 이동

(2) 라이브러리 참조 코드 복사

라이브러리 세부 페이지에서 Gradle (Short) 탭을 클릭하여, 해당 코드 스니펫을 복사한다

implementation 'com.google.code.gson:gson:2.11.0'
  • 이제 Lombok 라이브러리도 같은 방식으로 검색하여 최신 버전(1.18.34)의 코드를 복사한다
compileOnly 'org.projectlombok:lombok:1.18.34'
annotationProcessor 'org.projectlombok:lombok:1.18.34'

3. /app/build.gradle 파일 편집

/app/build.gradle 파일을 열고, dependencies { ... } 블록 안에 복사한 코드를 추가한다

4. build.gradle 파일 최종 결과

아래는 최종적으로 수정된 build.gradle 파일의 예시

plugins {
    // CLI 빌드를 위한 application 플러그인 적용
    id 'application'
}

repositories {
    // Maven Central을 사용하여 의존성 해결
    mavenCentral()
}

dependencies {
    // JUnit Jupiter를 사용한 테스트
    testImplementation libs.junit.jupiter
    testRuntimeOnly 'org.junit.platform:junit-platform-launcher'

    // 애플리케이션에서 사용할 의존성
    implementation libs.guava

    // Gson 라이브러리
    implementation 'com.google.code.gson:gson:2.11.0'

    // Lombok 라이브러리
    compileOnly 'org.projectlombok:lombok:1.18.34'
    annotationProcessor 'org.projectlombok:lombok:1.18.34'
}

java {
    toolchain {
        // 다른 환경에서 작업할 수 있도록 특정 Java 도구 체인 설정
        languageVersion = JavaLanguageVersion.of(21)
    }
}

application {
    // 애플리케이션의 main 클래스 정의
    mainClass = 'kr.hossam.lombok_ex.App01'
}

7. Maven

8. MySQL

8.1 MySQL 설치

windows

(1) Microsoft Visual C++ 재배포 가능 도구설치

지원되는 최신 Visual C++ 재배포 가능 패키지 다운로드 | Microsoft Learn 에서 통합 버전을 내려받아 설치한다

(2) MySQL 다운로드

https://dev.mysql.com/downloads/mysql/

인스톨 버전의 경우 윈도우 시스템 상태에 따라 설치에 실패하는 경우가 많으므로 압축패키지를 통한 수동 설치를 권장한다.

(3) MySQL 설치

  • 적절한 위치에 압축을 해제한다(폴더 경로에 한글 금지)
  • data라는 이름의 폴더 생성
  • 빈 텍스트 파일을 생성한다
  • 텍스트 파일의 이름을 my.ini 로 변경하고 아래의 설정 항목을 입력한다
[mysqld] 
basedir=MYSQL이_설치된_위치 
datadir=MYSQL이_설치된_위치\data 
port=3306

(4) MySQL 환경변수 설정

  • 1
  • 2
  • 3

설정 완료 후 나머지 창들도 확인 버튼을 눌러 모두 닫는다

(5) 윈도우 서비스 등록 및 실행

명령 프롬프트를 관리자 권한으로 실행한 상태에서 MySQL을 윈도우 서비스로 등록하기 위한 명령어를 입력한다

mysqld--install

등록된 윈도우 서비스를 구동하기 위한 명령어를 입력한다

net start MySQL

(6) 데이터베이스 관리 계정의 임시 비밀번호 확인하기

MySQL 설치 디렉토리 내의 data 폴더 안에 컴퓨터이름.err 형식의 파일을메모장으로 확인한다

mac

(1) mysql 설치

brew install mysql

(2) mysql 시작

mysql.server start

(3) root 비밀번호 설정

mysql_secure_installation
  • Would you like to setup VALIDATE PASSWORD plugin? : 비밀번호 가이드. 복잡한 비밀번호를 사용하도록 제한해주는 플러그인을 사용하려면 yes보안은 무시하고 그냥 쓰던 비밀번호 제한받지 않고 쓰고 싶다면 no.
  • Remove anonymous users? : 익명사용자 삭제할지/계속 사용할지 여부. no 하면 $ mysql -uroot가 아니라 $ mysql만으로도 접속 가능. yes하면 -u 옵션 필수.
  • Disallow root login remotely? : localhost외에 다른 ip에서 root 아이디로 원격접속 가능하게 할지. yes하면 원겹접속 불가.
  • Remove test database and access to it? : mysql에 기본적으로 설정된 test 디비 삭제 여부.
  • Reload privilege tables now? : 하나라도 권한 변경을 했다면 yes 해서 하는 게 정신건강에 좋음

(4) charset 설정

mysql -uroot -p

로그인하고,

status;

charset 확인.

  • 기본적으로 charset 4개가 모두 utf8이어서 그대로 두면 됨
  • 혹시나 latin등 다른 값이 있다면 위의 4. charset UTF-8로 바꾸기 따라하기. my.cnf가 기본적으로 존재하지 않으므로 $ vi /etc/my.cnf 등을 통해 새로 생성.

(5) 데몬 실행 

brew services start mysql
  • 로그인시 데몬 자동 실행 (To have launchd start mysql at login): 
ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents

(6) brew로 설치했다면 환경변수 설정은 필요없음! :)

8.2 MySQL Workbench

(1) Workbench 설치

https://dev.mysql.com/downloads/workbench/

(2) Connection 생성

만약 Test Connection을 눌렀을 때 Failed가 뜬다면 아래의 명령어 입력

mysql.server status

mysql.server start

9. Spring Boot

9.1 스프링 부트 관련 VSCode 확장(extension)설치

9.2 라이브러리 추가(의존성)