Server
-
[docker] docker-compose (도커컴포즈) 란?Server/Docker 2025. 4. 24. 17:59
🐳 도커 컴포즈(Docker Compose)란?Docker Compose는 여러 개의 컨테이너를 docker-compose.yml 파일 하나로 정의하고, 한 번에 실행할 수 있도록 해주는 도구입니다.예를 들어, 웹 애플리케이션을 구성할 때 웹 서버, DB 서버를 각각 컨테이너로 관리하면서도, 하나의 명령어로 손쉽게 실행/중지할 수 있습니다.🔧 Docker Compose 설치 방법📌 Linux에서 설치sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-composesudo chmod +x /usr/local/..
-
[docker] 자주 사용하는 명령어Server/Docker 2025. 4. 24. 17:45
자주 사용하는 Docker 명령어 정리1. 도커 버전 확인docker --version설치된 도커의 버전을 확인합니다.2. 도커 이미지 목록 확인docker images로컬에 저장된 도커 이미지 리스트를 확인할 수 있습니다.3. 컨테이너 목록 확인docker ps현재 실행 중인 컨테이너들을 확인합니다. -a 옵션을 붙이면 중지된 컨테이너까지 모두 표시됩니다.4. 이미지로 컨테이너 실행docker run [옵션] 이미지이름이미지를 기반으로 컨테이너를 생성하고 실행합니다. 예: docker run -d -p 8080:80 nginx5. 실행 중인 컨테이너 접속docker exec -it 컨테이너ID bash컨테이너 내부로 터미널 접속을 할 수 있습니다.6. 도커 컨테이너 시작/중지docker start 컨테..
-
리눅스 데몬(daemon) 이란?Server/Linux 2025. 4. 23. 11:33
🐧 리눅스에서 데몬(daemon)이란?데몬(daemon)은 리눅스 또는 유닉스에서 백그라운드에서 지속적으로 실행되는 프로세스를 말합니다. 시스템 부팅 시 자동 실행되어 사용자 개입 없이 동작합니다.✨ 왜 데몬이 필요한가?데몬은 시스템 서비스 제공에 핵심 역할을 합니다. 데몬 이름역할 sshdSSH 원격 접속 처리 cron예약된 작업 자동 실행 httpd웹 서버 서비스 제공 mysqldMySQL 데이터베이스 실행🔐 데몬의 권한 및 설정✅ 기본 권한대부분의 데몬은 root 권한으로 실행되며, 보안을 위해 전용 사용자 계정을 사용하는 경우도 있습니다.✅ 실행 사용자 변경 예시[Service]ExecStart=/usr/bin/mydaemonUser=www-dataGroup=www-data✅ 권한 제..
-
java 어플리케이션에서 시스템 명령어 사용하려면?Server 2025. 4. 23. 11:29
✅ Java의 ProcessBuilder란?ProcessBuilder는 Java 5부터 추가된 클래스이며, 외부 프로그램이나 쉘 명령어를 실행할 수 있게 도와주는 도구입니다.✨ 언제 사용하나? 운영체제 명령어를 호출해야 할 때 Java 외부 프로그램을 실행해야 할 때 외부 프로그램의 실행 결과를 Java에서 읽거나 처리할 때 백엔드 시스템이 외부 CLI 툴과 연동될 때📌 주요 메서드와 특징 메서드 / 기능설명 command(List)실행할 명령어 설정 directory(File)작업 디렉토리 설정 environment()환경 변수 설정 start()프로세스 시작 redirectInput/Output/Error()입출력 리디렉션 가능🧪 실전 예제✅ 예제 1: 디렉토리 목록 출력Proc..
-
[Springboot] 인증(Authentication)과 인가(Authorization) 구분하기!Server/Spring Boot 2025. 4. 21. 17:42
✅ 인증(Authentication)과 인가(Authorization)의 차이📌 비유로 쉽게 이해하기회사 건물에 출입하는 상황을 떠올려 봅시다. 인증(Authentication): 당신이 누구인지 확인하는 것 👉 출입문에서 사원증을 찍고 "나는 홍길동입니다" 라고 밝히는 단계입니다. 즉, 아이디와 비밀번호로 본인을 증명하는 것입니다. 인가(Authorization): 당신이 무엇을 할 수 있는지 확인하는 것 👉 사원증을 찍었더니 5층까지는 출입 가능, 9층은 출입 불가라고 나옵니다. 즉, 인증된 사용자가 어떤 권한(Role)을 가지고 있는지에 따라 접근 제한됩니다. 🛠 Spring Boot에서 로그인과 토큰을 활용한 인증/인가 구현📍 사용 기술 Spring Boo..
-
[Springboot] SQL Injection 이란? 해결 방안은?Server/Spring Boot 2025. 4. 21. 17:28
🔐 SQL Injection이란?SQL Injection은 사용자의 입력값이 검증 없이 SQL 쿼리에 포함될 때 발생합니다...💥 SQL Injection 발생 예제 (Spring Boot)// 취약한 코드 예시@RestController@RequiredArgsConstructorpublic class UserController { private final JdbcTemplate jdbcTemplate; @GetMapping("/user") public String getUser(@RequestParam String username) { String sql = "SELECT * FROM users WHERE username = '" + username + "'"; ..
-
[Springboot] 통합 테스트 코드 작성해보기 (Controller)Server/Spring Boot 2025. 4. 21. 15:48
Spring Boot Controller 통합 테스트 (JUnit 5 + MockMvc)이번에는 UserService를 사용하는 UserController에 대한 통합 테스트 예제를 알아봅니다.Spring Boot의 @SpringBootTest와 MockMvc를 활용하여 실제 HTTP 요청/응답 시나리오를 검증할 수 있습니다.1. 컨트롤러 클래스 (UserController.java)@RestController@RequestMapping("/users")public class UserController { private final UserService userService; public UserController(UserService userService) { this.userSe..
-
[Springboot] 단위 테스트 코드 작성해보기 (Service, Dao, Repository)Server/Spring Boot 2025. 4. 21. 15:45
Spring Boot에서 JUnit 5로 Service, Repository, DAO 단위 테스트하기1. 엔티티 클래스 (User.java)@Entitypublic class User { @Id @GeneratedValue private Long id; private String name; private String email; // getters, setters, constructors}2. Repository 인터페이스 (UserRepository.java)public interface UserRepository extends JpaRepository { Optional findByEmail(String email);}3. DAO 클래스 (UserDao.java)@Re..