devkobe24.com
AWS
Algorithm
2024
Architecture
Archive
AWS_archive
CPP_DS
CS_archive
DataStructure
Database
HackTheSwift
Java_archive
Leet-Code
MySQL
Network_archive
OS
Post
Read English Book
SQL_archive
Spring & Spring Boots
TIL
Web
Backend Development
CS
2024
2025
Code Review
DB
Data Structure
Development tools and environments
Interview
Java
Java多識
Java
Math
Network
2024
Others
SQL
2024
Server
Spring
Troubleshooting
Home
Contact
Copyright © 2024 |
Yankos
Home
> Development tools and environments
Now Loading ...
Development tools and environments
🛠️[개발 도구 및 환경] MySQL root 비밀번호 재설정하기 for MacOS.
🛠️[개발 도구 및 환경] MySQL root 비밀번호 재설정하기 for MacOS. 📌 Intro. ↘︎ 필자는 8.0.39 버전을 사용중이며 8.0.39 버전을 기준으로 설명합니다. ↘︎ 다른 버전은 비밀번호 재설정이 다를 수 있습니다 ⚠️ ✅1️⃣ MySQL 서버 확인 및 중지하기. ↘︎ MySQL 서버가 실행 중인지 확인합니다. ps aux | grep mysql ↘︎ 예상 결과: _mysql 15308 0.1 1.3 412253456 449312 s001 S 8:23AM 0:02.13 /path/to/mysqld --basedir=/path/to/mysql --datadir=/path/to/mysql/data --plugin-dir=/path/to/mysql/plugin --user=mysql --log-error=/path/to/mysql/logs/mysql.err --pid-file=/path/to/mysql/data/mysql.pid user1 6103 0.0 0.4 415725424 141392 ?? S 3:47AM 0:26.89 /path/to/IntelliJ IDEA.app/bin/java -Djava.rmi.server.hostname=127.0.0.1 -Duser.timezone=UTC ... user1 15467 0.0 0.0 410733328 1632 s001 S+ 8:32AM 0:00.00 grep --color=auto mysql root 15224 0.0 0.0 410726688 2672 s001 S 8:23AM 0:00.01 /bin/sh /path/to/mysql/bin/mysqld_safe --datadir=/path/to/mysql/data --pid-file=/path/to/mysql/data/mysql.pid ✅1️⃣ MySQL 서버가 실행 중일 경우. ↘︎ 1. kill -9 '프로세스의 PID' ↘︎ 예: kill -9 15308 ↘︎ 위와 같이 프로세스의 PID를 죽여 서버를 중지시킵니다. ↘︎ 2. sudo pkill mysqld ↘︎ 위 명령어를 사용하여 모든 프로세스를 죽여 서버를 중지시킵니다. ↘︎ 3. /path/to/mysql/support-files/mysql.server stop ↘︎ 위 명령어를 사용하여 mysql.server를 중지시킵니다. ↘︎ 4. 나만의 스크립트 사용. ↘︎ 자신만의 스크립트가 있다면 그 스크립트를 사용하여 server를 중지시킵니다. ✅2️⃣ MySQL 서버 --skip-grant-tables 명령어로 시작하기. ↘︎ 서버를 --skip-grant-tables 옵션을 주어 시작합니다. /path/to/mysql/support-files/mysql.server start --skip-grant-tables ↘︎ 위 옵션의 경우 root 인증 없이 MySQL 서버에 접근할 수 있도록 해줍니다. ✅3️⃣ root 계정에 접근 및 비밀번호를 null로 바꾸기. ✅1️⃣ root 계정에 접근하기. ↘︎ mysql -u root 명령어를 사용하여 root 계정에 접근합니다. mysql -u root ✅2️⃣ 비밀번호를 null로 바꾸기. 📌 비밀번호를 null로 바꾸는 이유 ↘︎ MySQL 8.0.X 부터는 ALTER USER를 사용하여 비밀번호를 변경해야 합니다. ↘︎ 그러나 --skip-grant-tables 옵션은 ALTER USER 가 실행되지 않으므로 비밀번호를 null로 바꾸고 빈 비밀번호에 정상 접근하여 비밀번호를 재설정하는 방법을 사용하기 위해 null로 일단 바꿉니다. ✅3️⃣ FLUSH PRIVILEGES. ↘︎ FLUSH PRIVILEGES를 사용하여 권한 설정을 해줍니다. ✅4️⃣ 서버 재시작 및 비밀번호 변경. ✅1️⃣ 서버 재시작 ↘︎ /path/to/mysql/support-files/mysql.server restart;로 서버를 재시작 합니다. ✅2️⃣ 루트 권한으로 접근. ↘︎ mysql -u root를 사용하여 root 권한으로 접근합니다. ✅3️⃣ 비밀번호 변경. ↘︎ ALTER USER 'root'@'localhost' identified with caching_sha2_password by 'new_password'; ↘︎ 위와 같이 비밀번호를 변경합니다. ✅5️⃣ 확인하기. ↘︎ mysql -u root -p ↘︎ 바뀐 비밀번호를 입력하고 잘 접속이 되는지 확인합니다.
Development tools and environments
· 2025-01-21
🛠️[개발 도구 및 환경] MySQL 서버 재시작 및 여러 명령어.
🛠️[개발 도구 및 환경] MySQL 서버 재시작 및 여러 명령어. ✅1️⃣ MySQL 서비스가 실행 중인지 확인하는 방법. ps aux | grep mysql 위 명령어를 실행하여 MySQL 서비스가 실행 중인지 확인할 수 있음. ✅2️⃣ MySQL 서버 재시작 하는 방법. sudo /usr/local/mysql/support-files/mysql.server stop // MySQL 서버 정지 sudo /usr/local/mysql/support-files/mysql.server start // MySQL 서버 시작 위 명령어로 서버를 재시작할 수 있음. sudo /usr/local/mysql/support-files/mysql.server restart // MySQL 서버 재시작 MySQL 서버가 이미 실행 중인 경우에는 위 명령어로 서버를 재시작할 수 있음. ✅3️⃣ MySQL의 설정 파일(my.cnf 또는 my.ini) 찾는 방법. 방법 1️⃣ MySQL 설정 파일 경로 확인. MySQL은 여러 위치에서 설정 파일을 검색한다. 이를 확인하기 위해 아래 명령어를 실행. mysql --help | grep "my.cnf" 출력 예시 /etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf 위 출력은 MySQL이 설정 파일을 검색하는 경로이다. 이 경로를 차례대로 확인하면 my.cnf 파일을 찾을 수 있다. 방법 2️⃣ MySQL에서 직접 확인하기. MySQL이 현재 사용 중인 설정 파일의 경로를 확인하려면 아래 명령어를 실행한다. mysql -u root -p -e "SHOW VARIABLES LIKE 'pid_file';" 출력 예시: +---------------+------------------------------+ | Variable_name | Value | +---------------+------------------------------+ | pid_file | /usr/local/var/mysql/<your_hostname>.pid | +---------------+------------------------------+ PID 파일의 경로와 동일한 디렉토리에 설정 파일이 존재할 가능성이 높음. 방법 3️⃣ 설정 파일 직접 검색. 설정 파일이 시스템에 존재하는지 find 명령어를 사용하여 검색할 수 있음. sudo find / -name "my.cnf" 2>/dev/null 또는 MySQL 설치 디렉토리에서 검색시: sudo find /usr/local -name "my.cnf" 2>/dev/null 방법 4️⃣ 설정 파일 직접 생성하기. 만약 설정 파일이 없다면 직접 생성해야 한다. 1. /usr/local/etc/my.cnf 파일 생성: sudo touch /usr/local/etc/my.cnf sudo nano /usr/local/etc/my.cnf sudo vi /usr/local/etc/my.cnf 1.1 필자의 방법 필자는 /usr/local/mysql 디렉토리를 찾아 내부에 my.cnf 파일을 직접 생성했다. 2. 예제 설정 추가: [mysqld] ft_min_word_len=1 3. MySQL 서버 재시작: sudo /usr/local/mysql/support-files/mysql.server restart
Development tools and environments
· 2025-01-21
🛠️[개발 도구 및 환경] DataGrip으로 생성한 MySQL DB를 Docker 이미지로 만들기.
🛠️[개발 도구 및 환경] DataGrip으로 생성한 MySQL DB를 Docker 이미지로 만들기. ✅1️⃣ MySQL 데이터 덤프(Export) ↘︎ mysqldump 명령어를 사용하여 MySQL 데이터를 덤프한다. mysqldump -u root -p --databases article > article.sql ↘︎ -u root : MySQL 사용자명. ↘︎ -p : 비밀번호 입력 요청. ↘︎ --databasese : 특정 데이터베이스 선택. ↘︎ article.sql : 데이터 덤프 파일명. ✅2️⃣ Dockerfile 생성. ↘︎ MySQL을 기반으로 한 Docker 이미지를 만들기 위한 Dockerfile을 생성. ↘︎ Dockerfile 예시: ```dockerfile FROM mysql:8.0.38 # 환경 변수 설정 ENV MYSQL_DATABASE=article # 덤프된 SQL 파일 복사 COPY article.sql /docker-entrypoint-initdb.d/ # MySQL 포트 노출 EXPOSE 3306 ``` ↘︎ 설명: ↘︎ FROM mysql:8.0.38 : MySQL 8.0.38 이미지 사용. ↘︎ ENV : 환경 변수 설정. ↘︎ COPY : 덤프 파일을 MySQL 초기화 디렉토리에 복사. ↘︎ /docker-enrtypoint-initdb.d/ : 디렉터리는 컨테이너가 시작될 때 SQL 스크립트를 자동으로 실행. ✅3️⃣ Docker 이미지 빌드. ↘︎ Dockerfile이 있는 디렉터리로 이동한 후, Docker 이미지를 빌드. docker build . ✅4️⃣ Dockerfile의 위치. 📌 설명. ↘︎ Dockerfile은 사용자가 직접 생성해야 함. ↘︎ MySQL 공식 이미지(mysql:8.0.38)에는 Dockerfile이 포함되어 있지 않으며, 사용자의 요구사항에 맞게 커스터마이징해야 함. 📌 Dockerfile 생성 위치. ↘︎ Dockerfile은 주로 다음과 같은 위치에 생성됨. ↘︎ 프로젝트 루트 디렉터리 ↘︎ Docker 관련 설정 디렉터리 (예: docker/) ↘︎ 예시 프로젝트 구조: kobe-board/ ├── docker/ │ ├── Dockerfile ← Dockerfile 생성 │ ├── backup.sql ← MySQL 덤프 파일 (선택 사항) │ ├── docker-compose.yml (선택 사항) ├── service/ │ ├── article/ │ ├── comment/ └── common/ ✅5️⃣ Dockerfile 생성. 📌 프로젝트 루트 디렉터리로 이동. ↘︎ cd /Users/kobe/Desktop/kobe-board 📌 docker 디렉터리 생성(선택 사항). ↘︎ mkdir docker cd docker 📌 Dockerfile 생성. ↘︎ vi Dockerfile 📌 Dockerfile 내용 작성. ↘︎ 예제 Dockerfile: ```dockerfile MySQL 공식 이미지 사용 FROM mysql:8.0.38 환경 변수 설정 ENV MYSQL_DATABASE=article SQL 덤프 파일 복사 (선택 사항) COPY article.sql /docker-entrypoint-initdb.d/ MySQL 포트 노출 EXPOSE 3306 ``` ✅6️⃣ 주의사항 ↘︎ 1. Dockerfile 위치 ↘︎ Dockerfile은 docker build 명령어를 실행하는 디렉터리에 존재해야 함. ↘︎ 2. SQL 덤프 파일 ↘︎ article.sql 파일이 존재하지 않는다면 해당부분(COPY article.sql)을 생략하거나 수정해야 함. ↘︎ 3. 디렉터리 권한 ↘︎ MySQL 데이터가 저장될 디렉터리는 Docker가 접근 가능해야 함.
Development tools and environments
· 2025-01-08
🛠️[개발 도구 및 환경] `org.springframework.boot` 플러그인의 역할?
🛠️[개발 도구 및 환경] org.springframework.boot 플러그인의 역할? Spring Boot 플러그인(org.springframework.boot)은 Spring Boot 기반 프로젝트를 효율적으로 빌드하고 실행할 수 있도록 돕는 도구입니다. Gradle 또는 Maven과 같은 빌드 도구에서 사용되며, 다양한 작업을 자동화하여 개발 생산성을 높입니다. 1️⃣ 주요 역할. 1️⃣ Spring Boot 애플리케이션 실행 지원. Spring Boot 애플리케이션을 직접 실행할 수 있는 bootRun(Gradle) 또는 spring-boot:run(Maven) 작업을 제공합니다. 애플리케이션 실행에 필요한 클래스패스 설정 및 시작 클래스를 자동으로 감지합니다. 실행 명령 예: ./gradlew bootRun mvn spring-boot:run 2️⃣ 애플리케이션 패키징. Spring Boot 애플리케이션을 실행 가능한 JAR 또는 WAR 파일로 패키징합니다. 패키징된 파일에는 필요한 모든 의존성과 내장 웹 서버(예: Tomcat, Jetty)가 포함됩니다. 이를 통해 추가 설정 없이 독립 실행형 애플리케이션으로 배포가 가능합니다. Gradle: ./gradlew bootJar ./gradlew bootWar Maven: mvn package 3️⃣ 의존성 관리. Spring Boot의 의존성 관리 기능을 제공합니다. spring-boot-dependencies BOM(Bill of Materials)을 통해 프로젝트에서 사용해야 할 의존성 버전을 자동으로 관리합니다. 이를 통해 호환성 문제를 최소화하고, 안정적인 의존성 구성을 유지할 수 있습니다. 4️⃣ 내장 웹 서버 통합. 내장된 Tomcat, Jetty, Undertow와 같은 웹 서버를 활용하여 웹 애플리케이션을 실행할 수 있도록 설정합니다. 개발 중에는 bootRun 명령으로 내장 서버를 쉽게 실행하고 테스트할 수 있습니다. 5️⃣ 설정 및 환경 관리. Spring Boot의 application.properties 또는 application.yml과 같은 설정 파일을 읽고 실행 시 적용합니다. 프로파일(Profiles)을 통해 다양한 실행 환경(dev, test, prod)을 쉽게 구성할 수 있습니다. 6️⃣ 개발 및 디버깅 지원. 애플리케이션 코드를 변경하면 자동으로 반영하는 핫 리로드(Hot Reload) 기능을 Spring DevTools와 연계하여 제공합니다. 이를 통해 코드 변경 후 서버를 다시 시작하지 않고도 테스트할 수 있습니다. 7️⃣ 테스트 지원. test 작업을 통해 Spring Boot 테스트를 실행합니다. Gradle/Maven 빌드 도구에 기본 제공되는 테스트 프레임워크(JUnit, TestNG)와 쉽게 통합됩니다. 8️⃣ 추가 작업 제공. Gradle bootBuildeImage : 애플리케이션을 OCI(컨테이너) 이미지로 빌드. Maven spring-boot:build-image : 컨테이너 이미지를 생성. 9️⃣ Spring Boot Gradle 플러그인 예제. build.gradle 설정. plugins { id 'org.springframework.boot' version '3.4.0' // Spring Boot 플러그인 id 'io.spring.dependency-management' version '1.1.3' // 의존성 관리 id 'java' } group = 'com.example' version = '0.0.1-SNAPSHOT' java { sourceCompatibility = '17' } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' testImplementation 'org.springframework.boot:spring-boot-starter-test' } 주요 명령어. 애플리케이션 실행: ./gradlew bootRun JAR 생성: ./gradlew bootJar WAR 생성: ./gradlew bootWar 1️⃣0️⃣ Spring Boot Maven 플러그인 예제. pom.xml 설정. <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> 주요 명령어. 애플리케이션 실행: mvn spring-boot:run 패키징: mvn package 1️⃣1️⃣ 요약. Spring Boot 플러그인 Spring Boot 프로젝트를 쉽게 실행, 패키징, 의존성 관리할 수 있는 도구입니다. 아 플러그인을 활용하면 개발 속도가 크게 향상되고, 배포 및 관리가 간단해집니다.
Development tools and environments
· 2024-12-11
🛠️[개발 도구 및 환경] Spring Boot에서 Profile을 활용하여 개발 환경 분리하기.
🛠️[개발 도구 및 환경] Spring Boot에서 Profile을 활용하여 개발 환경 분리하기. 1️⃣ 프로파일 분리 방법. 방법 1: application.yml 파일에서 분리. application.yml 파일은 여러 프로파일을 하나의 파일로 관리할 수 있도록 지원합니다. 환경별로 설정을 나누기 위해 --- 구분자를 사용합니다. 예시: application.yml # 기본 설정 (spring.profiles.active를 지정하지 않으면 이 설정이 사용됨) spring: profiles: default: local datasource: url: jdbc:h2:mem:localdb username: local_user password: local_pass --- # 개발 환경(dev) 설정. spring: profiles: dev datasource: url: jdbc:mysql://dev.example.com:3306/devdb username: dev_user password: dev_pass --- # 운영 환경(prod) 설정. spring: profiles: prod datasource: url: jdbc:mysql://prod.example.com:3306/proddb username: prod_user password: prod_pass 방법 2: applicatioon-{profile}.yml 파일로 분리. 각 프로파일을 별도 파일로 관리할 수도 있습니다. 파일 이름에 {profile} 부분을 프로파일 이름으로 지정합니다. 파일 구조 src/main/resources/ ├── application.yml # 기본 설정 파일 ├── application-local.yml # local 프로파일 설정 ├── application-dev.yml # dev 프로파일 설정 ├── application-prod.yml # prod 프로파일 설정 application.yml(공통 성정 및 활성화 프로파일 지정) spring: profile: active: local # 기본 활성화 프로파일 설정 application-local.yml spring: datasource: url: jdbc:h2:mem:localdb username: local_user password: local_pass application-dev.yml spring: datasource: url: jdbc:mysql://dev.example.com:3306/devdb username: dev_user password: dev_pass application-prod.yml spring: datasource: url: jdbc:mysql://prod.example.com:3306/proddb username: prod_user password: prod_pass 2️⃣ 실행 시 프로파일 지정 방법. 방법 1: 명령어 옵션으로 프로파일 지정. java -jar library-app-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev 방법 2: 환경 변수로 프로파일 지정. SPRING_PROFILES_ACTIVE=dev java -jar library-app-0.0.1-SNAPSHOT.jar 방법 3: IDE를 통해 프로파일 지정 server: port: 8080 spring: config: activate: on-profile: local datasource: url: "jdbc:h2:mem:library;MODE=MYSQL;NON_KEYWORDS=USER" username: "sa" password: "" driver-class-name: org.h2.Driver jpa: hibernate: ddl-auto: create properties: hibernate: show_sql: true format_sql: true dialect: org.hibernate.dialect.H2Dialect h2: console: enabled: true path: /h2-console --- server: port: 8080 spring: config: activate: on-profile: dev datasource: url: "jdbc:mysql://localhost/library" username: "root" password: "" driver-class-name: com.mysql.cj.jdbc.Driver jpa: hibernate: ddl-auto: none properties: hibernate: show_sql: true format_sql: true dialect: org.hibernate.dialect.MySQL8Dialect Run/Debug Configuration 창 열기 Active profiles에 지정할 환경 추가 3️⃣ 코드로 프로파일 확인 및 적용. Spring Boot 애플리케이션 코드에서 현재 활성화된 프로파일을 확인하거나 특정 로직을 환경에 따라 분기할 수도 있습니다. 활성 프로파일 확인. import org.springframework.core.env.Enviroment; import org.springframework.stereotype.Component; @Component public class ProfileChecker { private final Environment environment; public ProfileChecker(Environment environment) { this.environment = this.environment; } public void printActiveProfiles() { String[] activeProfiles = environment.getActiveProfiles(); System.out.println("Active Profiles: " + String.join(", ", activeProfiles)); } } 특정 프로파일에서만 동작하는 코드. import org.springframework.context.annotation.Profile; import org.springframework.stereotype.Service; @Service @Profile("dev") // dev 환경에서만 활성화 public class DevOnlyService { public void run() { System.out.println("This service runs only in the dev environment!"); } } 4️⃣ 주의사항. 1️⃣ 환경 변수 우선 순위. Spring Boot는 프로파일 설정에서 아래 순서로 우선순위를 따릅니다. 명령줄 인수 SPRING_PROFILES_ACTIVE 환경 변수 appilcation.yml 또는 applicatioon.properties의 spring.profiles.active 값 2️⃣ 운영 환경에 대한 보안 운영 환경에서는 application-prod.yml 같은 파일에 민감한 정보를 포함하지 않고 외부 설정 파일이나 환경 변수를 활용하는 것이 좋습니다. 3️⃣ 프로파일에 따른 빈(Bean) 생성 관리. 특정 프로파일에서만 사용해야 하는 빈은 @Profile 애너테이션을 사용해 관리합니다. 5️⃣ 결론. Spring Boot의 프로파일을 통해 개발 환경에 따른 설정을 효과적으로 분리하고 관리할 수 있습니다. application.yml 내에서 분리하거나 별도 파일로 분리하여 설정하며, 실행 시 –spring.profiles.active로 활성화할 프로파일을 지정하면 됩니다. 운영 환경에서는 보안을 고려해 민감 정보를 환경 변수로 관리하는 것이 권장됩니다.
Development tools and environments
· 2024-11-24
🛠️[개발 도구 및 환경] .gitignore가 동작하지 않아요!
🛠️[개발 도구 및 환경] .gitignore가 동작하지 않아요! 1️⃣ .gitignore가 제대로 동작하지 않을 때. .gitignore를 생성한 후 내부에 .DS_Store를 추가하고 나서 언젠가부터 ignore 처리된 파일이 changes에 나오기 시작했습니다. 그래서 그 이유를 찾아보니 “git의 캐시가 문제가 되는 것”이였습니다. 아래의 명령어로 캐시 내용을 전부 삭제후 다시 add All 해서 커밋하니 제대로 동작했습니다. git rm -r --cached . git add . git commit -m "fixed untracked files" 📝 REFERENCE 기억보단 기록을
Development tools and environments
· 2024-11-24
🛠️[개발 도구 및 환경] 빌드된 프로젝트 실행하기.
🛠️[개발 도구 및 환경] 빌드된 프로젝트 실행하기. 1️⃣ plain.jar와 executable.jar. AWS Linux 2023 EC2 내에서 도서 관리 애플리케이션을 빌드하니 새로운 build 파일이 생겨났습니다. /build/libs/ 경로를 따라 들어가면 plain.jar 파일과 executable.jar 파일이 생성되어 있는 것을 확인할 수 있습니다. library-app-0.0.1-SNAPSHOT-plain.jar // <- plain.jar 파일 library-app-0.0.1-SNAPSHOT.jar // <- executable.jar 파일 이 두 가지 파일을 예로 들어 각각의 의미와 차이를 설명해보겠습니다. 2️⃣ library-app-0.0.1-SNAPSHOT-plain.jar 설명 “Plain JAR”로 불리며, 프로젝트의 클래스 파일과 리소스만 포함된 JAR입니다. 의존성 라이브러리나 실행 진입점(main())이 설정되지 않은 단순 JAR 파일입니다. 포함 내용 프로젝트 소스에서 빌드되고 컴파일된 클래스 파일(.class). META-INF 디렉토리와 리소스 파일. 사용 목적 독립 실행이 불가능하며, 다른 프로젝트에서 의존성으로 사용할 때 활용될 수 있습니다. 라이브러리 형태로 배포하거나 특정 작업에 사용됩니다. 3️⃣ library-app-0.0.1-SNAPSHOT.jar 설명 “Executable JAR”로 불리며, 실행 가능한 JAR 파일입니다. 이 파일에는 모든 의존성 라이브러리와 실행 진입점(main() 메서드)을 포함합니다. 포함 내용 library-app-0.0.1-SNAPSHOT-plain.jar의 모든 내용. 의존성 라이브러리들이 포함되어 실행 가능한 환경이 됩니다. META-INF/MANIFEST.MF 파일에 Main-Class가 설정되어 있어, java -jar 명령으로 실행할 수 있습니다. 사용 목적 애플리케이션을 실행하거나 배포할 때 사용됩니다. 독립 실행 가능한 애플리케이션 JAR로 사용됩니다. 4️⃣ 주요 차이점. 구분 plain.jar executable.jar 의존성 포함 여부 포함되지 않음 포함되어 있음 실행 가능 여부 실행 불가능 실행 가능 사용 목적 라이브러리 형태로 사용 독립 실행 가능한 애플리케이션 Manifest 설정 Main-Class 없음 Main-Class 포함 5️⃣ 선택 기준. 실행 가능한 애플리케이션으로 사용하려면 libaray-app-0.0.1-SNAPSHOT.jar를 사용하여 실행. java -jar library-app-0.0.1-SNAPSHOT.jar 라이브러리나 종속 프로젝트로 활용하려면 library-app-0.0.1-SNAPSHOT-plain.jar를 배포하거나 의존성으로 추가.
Development tools and environments
· 2024-11-23
🛠️[개발 도구 및 환경] `./gradlew build -x test` 명령어는 무엇인가요?
🛠️[개발 도구 및 환경] ./gradlew build -x test 명령어는 무엇인가요? ./gradlew build -x test 명령어는 Gradle 빌드 시스템에서 프로젝트를 빌드(Build)하면서 테스트(Test) 단계를 건너뛰기 위한 명령어입니다. 1️⃣ 명령어 구성. 1️⃣ ./gradlew Gradle Wrapper를 실행하는 명령어입니다. 프로젝트 내에 포함된 Gradle Wrapper(gradlew)를 사용하여 Gradle 명령어를 실행합니다. Gradle Wrapper를 사용하면 프로젝트에 설정된 특정 Gradle 버전을 자동으로 다운로드하고 실행할 수 있습니다. 2️⃣ build Gradle의 기본 빌드(Build) 작업(Task)입니다. 프로젝트를 빌드하여 컴파일, 테스트, 패키징(JAR/ZIP 생성 등)을 수행합니다. build는 여러 단계를 포함하며, 일반적으로 다음을 실행합니다. compileJava : 자바 소스 코드 컴파일. processResources : 리소스 파일 처리. test : 테스트 실행. assemble : 아티팩트 생성(JAR 등). check : 품질 검사 및 테스트 통합. build : 위 단계들을 통합하여 실행. 3️⃣ -x test -x는 특정 작업(Task)을 제외(Exclude)한다는 옵션입니다. 여기서는 test 작업을 실행하지 않고 건너뛴다는 의미입니다. test는 JUnit등으로 작성된 단위 테스트를 실행하고 결과를 확인하는 작업입니다. 2️⃣ 명령어의 동작. ./gradlew build -x test는 테스트 단계를 제외하고 프로젝트를 빌드합니다. 빌드 과정에서: 소스 코드는 컴파일 되고, 리소스 파일은 처리되며, 결과물(JAR, ZIP 등)이 생성됩니다. 단, 테스트는 실행되지 않습니다. 3️⃣ 언제 사용하나요? 1️⃣ 테스트 실행 시간이 오래 걸릴 때. 테스트 단계는 시간이 오래 걸릴 수 있습니다. 빠르게 빌드를 완료하고 결과물(JAR 파일 등)만 생성하려는 경우 유용합니다. 2️⃣ 테스트가 실패하거나 불완전한 상태일 때. 테스트 코드가 완벽하지 않거나 실패하지만, 결과물만 생성이 필요한 경우 사용할 수 있습니다. 3️⃣ CI/CD 파이프라인에서 선택적으로 테스트를 건너뛸 때 테스트 단계가 별도의 프로세스에서 실행되는 경우, 빌드 시 테스트를 생략할 수 있습니다. 4️⃣ 예시. 1️⃣ 테스트 포함 빌드. ./gradlew build 테스트 단계도 포함됩니다. 2️⃣ 테스트 제외 빌드. ./gradlew build -x test 테스트 단계를 제외하고 빌드가 진행됩니다. 5️⃣ 주의사항. 테스트를 생략하면 코드의 품질이나 안정성을 보장할 수 없습니다. 최종 배포나 프로덕션 환경에서는 테스트 단계를 포함한 빌드를 사용하는 것이 권장됩니다. 6️⃣ 요약. ./gradlew build -x test 명령어는 Gradle을 사용해 프로젝트를 빌드하면서 테스트 단계를 생략하는 명령어입니다. 빠른 빌드가 필요하거나 테스트 상태와 관계없이 결과물만 생성하려는 상황에서 유용합니다.
Development tools and environments
· 2024-11-23
<
>
Touch background to close