1 분 소요


  1. 개발 환경 준비 1)
  2. Spring IoC 1) 2)
  3. Spring MVC 1) 2) 3)
  4. Database 활용
  5. View Template 1) 2) 3) 4) 5)
  6. AOP / Filter / Interceptor
  7. File Upload / Download

연습

  • ImageUtil 클래스를 bean으로 생성하고 save 메서드를 실행하여 URL의 이미지 다운로드할 수 있게 작성해보자

file\src\main\java\com\example\demo\config\ImageUtil.java

Java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package com.example.demo.config;

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.net.URL;

import javax.imageio.ImageIO;

import org.springframework.stereotype.Component;

@Component
public class ImageUtil {
    public void save(String path) throws IOException {
        URL url = null;
        url = new URL(path);

        String fileName = path.substring(path.lastIndexOf("/") + 1);
        String fileExt = path.substring(path.lastIndexOf(".") + 1);

        BufferedImage img = ImageIO.read(url);
        // 루트 경로에 download 폴더가 존재해야 함
        ImageIO.write(img, fileExt, new File("download\\" + fileName));
    }
}

file\src\main\java\com\example\demo\DemoApplication.java

Java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
...

import java.io.IOException;
import com.example.demo.config.ImageUtil;

...

public class DemoApplication {
	public static void main(String[] args) throws IOException {
        ApplicationContext context = new AnnotationConfigApplicationContext(BeanConfig.class);
        ImageUtil imageUtil = (ImageUtil) context.getBean("imageUtil");
		imageUtil.save("http://ggoreb.com/images/luffy.jpg");

...

Maven

  • 자바 프로젝트 관리 도구 (Build Tool)
  • 컴파일/빌드/수행/테스트/배포 + 라이브러리 의존성 관리
  • Apache의 중앙 저장소 또는 별도의 자체 중앙 저장소 구축 가능
  • 가장 많이 사용되는 빌드 툴 중 하나이다.

장점

  • 빌드부터 배포까지의 작업 자동화
  • 라이브러리의 버전 및 의존성 관리 편리하다.

단점

  • 특정 플러그인의 설정에 문제가 생기면 작업 수행 불가능하다.
  • 네트워크 상태가 원활하지 못한 경우 프로젝트 오류가 발생한다.

Maven 프로젝트의 기본 구조

  1. src 하위에 main 과 test 2가지로 구분된다.
  2. main 에는 프로젝트의 소스코드, test 에는 main 소스코드의 test코드가 작성된다.
  3. resources 에는 프로젝트에 필요한 자원 파일 저장한다.
  4. pom.xml 에 정의된 의존성에 따라 Maven Dependencies 구성된다.
  5. pom.xml 에 프로젝트 버전 등의 정보, 저장소, 라이브러리 의존, 플러그인 등의 설정이 저장된다.

라이브러리 관리

  • dependency에 정의된 내용에 따라 중앙 저장소로부터 JAR 파일을 다운로드하여 로컬 저장소에 저장하고 프로젝트에 등록한다.
  • 사용하려는 JAR가 로컬 저장소에 존재하면 그대로 사용하고 존재하지 않으면 중앙 저장소에서 다운로드한다.

Reference

  • 이 포스트는 SeSAC 인공지능 SW 개발자 양성 과정 - 김영식 강사님의 강의내용을 정리한 것입니다.

댓글남기기