목차

    불편함을 코드로 지웁니다.

    개발 공부 노트, 개발 도구와 문제를 해결한 과정, AI 프롬프트와 Obsidian 활용법을 정리합니다.

      ⏳ Time Log/TIL · 하루

      [TIL] Day 63 — Java Stream/Lambda + Docker WordPress 환경 구성 (1/16)

      this.Serena 2026. 6. 8. 21:19

      [TIL] Day 63 — Java Stream/Lambda + Docker WordPress 환경 구성 (1/16)

      날짜: 2026-01-16
      기술 스택: Java Lambda Stream IOStream Docker

      한 줄 요약: Java Lambda/Stream/I/O Stream 오전 실습 + Docker 네트워크로 MySQL-WordPress 연동 환경 구성


      Java Lambda / Stream / I/O Stream

      Stream API 핵심 패턴

      List<String> names = List.of("Alice", "Bob", "Charlie");
      
      // filter → map → collect
      List<String> result = names.stream()
          .filter(n -> n.length() > 3)        // 3자 초과만
          .map(String::toUpperCase)           // 대문자 변환
          .collect(Collectors.toList());      // 리스트로 수집

      I/O Stream 기본 구조

      // 파일 쓰기
      try (FileWriter fw = new FileWriter("output.txt", StandardCharsets.UTF_8)) {
          fw.write("Hello, File!");
      }
      
      // 파일 읽기
      try (BufferedReader br = new BufferedReader(new FileReader("output.txt"))) {
          String line;
          while ((line = br.readLine()) != null) {
              System.out.println(line);
          }
      }

      Docker 네트워크로 WordPress + MySQL 구성

      컨테이너 간 통신을 위해 Docker 가상 네트워크 생성 후 같은 네트워크에 올리면 컨테이너 이름으로 서로 통신 가능

      1. 네트워크 생성

      docker network create wordpress000net1

      2. MySQL 컨테이너 실행

      docker run --name mysql000ex11 -dit \
        --net=wordpress000net1 \
        -e MYSQL_ROOT_PASSWORD=1234 \
        -e MYSQL_DATABASE=wordpress000db \
        -e MYSQL_USER=kun \
        -e MYSQL_PASSWORD=1234 \
        mysql:5.7

      3. WordPress 컨테이너 실행

      docker run --name wordpress000ex12 -dit \
        --net=wordpress000net1 \
        -p 8085:80 \
        -e WORDPRESS_DB_HOST=mysql000ex11 \
        -e WORDPRESS_DB_NAME=wordpress000db \
        -e WORDPRESS_DB_USER=kun \
        -e WORDPRESS_DB_PASSWORD=1234 \
        wordpress:latest

      브라우저에서 localhost:8085 접속으로 WordPress 설치 화면 확인

      핵심 포인트

      • --net 옵션으로 같은 가상 네트워크에 참여하면 컨테이너 이름(mysql000ex11)으로 DB 호스트 지정 가능
      • 포트 매핑 -p 호스트:컨테이너 — 호스트 8085 → 컨테이너 80

      더 알아볼 것

      • Stream reduce(), flatMap(), distinct() 활용 예시
      • Docker bridge 네트워크 vs host 네트워크 차이
      • docker network inspect로 네트워크 상태 확인
      • WordPress MySQL 버전 호환성 이슈 (mysql:5.7 vs 최신)
      • I/O Stream vs NIO (java.nio.file.Files) 성능 비교