๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Project ESG+AI/[์‚ผ์ •KPMG]ESG ๋ฐ์ดํ„ฐ ํ™œ์šฉ ํ’€์Šคํ… ๊ฐœ๋ฐœ

9์ผ์ฐจ.

by GreenJin_S2 2025. 10. 21.

 

 

 

 

for (ํƒ€์ž… ๋ณ€์ˆ˜ : ๋ฐฐ์—ด ๋˜๋Š” ์ปฌ๋ ‰์…˜) { // ๋ฐ˜๋ณต ์‹คํ–‰ํ•  ์ฝ”๋“œ }
  • ํƒ€์ž… ๋ณ€์ˆ˜ → ๋ฐ˜๋ณตํ•˜๋ฉด์„œ ๊บผ๋‚ผ ๊ฐ’์˜ ํƒ€์ž…๊ณผ ์ž„์‹œ ์ €์žฅํ•  ๋ณ€์ˆ˜
  • ๋ฐฐ์—ด ๋˜๋Š” ์ปฌ๋ ‰์…˜ → ๋ฐ˜๋ณตํ•  ๋Œ€์ƒ
  • : (์ฝœ๋ก ) → “~์—์„œ ํ•˜๋‚˜์”ฉ ๊บผ๋‚ธ๋‹ค” ๋ผ๋Š” ์˜๋ฏธ

 

 

 


์ปจํŠธ๋กค๋Ÿฌ-์„œ๋น„์Šค-๋ ˆํฌ์ง€ํ† ๋ฆฌ๋กœ ์—ฐ๊ฒฐ

@Controller
public class UserController {

    private final UserService userService;
    public UserController(UserService userService){
        this.userService = userService;
    }


}

 

 

ctrl+c , vํ•ด์„œ service์— ๋„ฃ๊ณ  ์ปค์„œ์—๊ฒŒ ์‹œํ‚ค๊ธฐ


@UserService.java
์—ฌ๊ธฐ์— @UserRepository.java์™€ ํŒŒ์ดํ”„๋ผ์ธ์œผ๋กœ ์—ฐ๊ฒฐํ•˜๋Š” ์ฝ”๋“œ ์งœ์ค˜

 

 

@Service
public class UserService {

    private final UserRepository userRepository;

    public UserService(UserRepository userRepository) {
        this.userRepository = userRepository;
    }
}

 

 

 


@train.csv
์—ฌ๊ธฐ์—์„œ ์Šคํ‚ค๋งˆ๋ฅผ ํ•„๋“œ๋กœ ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์ค˜

 

 

 

 

๋กฌ๋ณต์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 

 

DTO ๋Š” @Data

VO๋Š” @Getter

 

 

 

**๋กฌ๋ณต(Lombok)**์€ ์Šคํ”„๋ง ํ”„๋กœ์ ํŠธ์—์„œ ์ž๋ฐ”์˜ ๋ฐ˜๋ณต์ ์ธ ์ฝ”๋“œ๋ฅผ ์ž๋™์œผ๋กœ ๋งŒ๋“ค์–ด์ฃผ๋Š” ์ƒ์‚ฐ์„ฑ ํ–ฅ์ƒ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ํ•ต์‹ฌ์€ ๊ฐ€๋…์„ฑ ํ–ฅ์ƒ + ์ฝ”๋“œ ๊ฐ„๊ฒฐํ™” + ์œ ์ง€๋ณด์ˆ˜์„ฑ ๊ฐœ์„ ์ž…๋‹ˆ๋‹ค.

 

 

 

 

register์—์„œ ๊ฐ€์ ธ์™€์„œ ์ €๋ถ€๋ถ„๋งŒ ๋ฐ”๊ฟ”์คŒ

 

 

 

 

 

passenger์„ ๋‹ค user ๋กœ ๋ฐ”๊พธ๊ธฐ

 

 

 

 

messenger์— ๋‹ด์•„์„œ ๋ณด๋ƒ„

 

 

 

์ด ๋ถ€๋ถ„์€ ์ˆ˜๋™์œผ๋กœ ๊ณ ์ณ์ค˜์•ผํ•จ


                int count = 0;
                for (CSVRecord record : records) {
                    UserDTO user = new UserDTO();
                    user.setPassengerId(record.get("PassengerId"));
                    user.setName(record.get("Name"));
                    user.setGender(record.get("Sex"));
                    user.setAge(record.get("Age"));
                    user.setPclass(record.get("Pclass"));
                    user.setSurvived(record.get("Survived"));
                    user.setSibSp(record.get("SibSp"));
                    user.setParch(record.get("Parch"));
                    user.setTicket(record.get("Ticket"));
                    user.setFare(record.get("Fare"));
                    user.setCabin(record.get("Cabin"));
                    user.setEmbarked(record.get("Embarked"));

                    user.add(user);

 

 

package com.seoeunjin.api.user.controller;

import java.io.FileReader;
import java.io.InputStreamReader;
import java.io.Reader;
import java.util.ArrayList;
import java.util.List;

import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVParser;
import org.apache.commons.csv.CSVRecord;
import org.springframework.boot.autoconfigure.security.SecurityProperties.User;
import org.springframework.core.io.ClassPathResource;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;

import com.seoeunjin.api.common.domain.Messenger;
import com.seoeunjin.api.user.domain.UserDTO;
import com.seoeunjin.api.user.service.UserService;
import lombok.RequiredArgsConstructor;

@Controller
@RequiredArgsConstructor
public class UserController {

    private final UserService userService;

    @GetMapping("/train/top5")
    public Messenger printTop5Passengers() {
        try {
            String csvFilePath = "src/main/resources/static/csv/train.csv";
            // CSV ํŒŒ์ผ ์ฝ๊ธฐ
            FileReader reader = new FileReader(csvFilePath);
            CSVParser parser = new CSVParser(reader, CSVFormat.DEFAULT.withFirstRecordAsHeader());

            List<UserDTO> users = new ArrayList<>();
            int count = 0;
           
            // ์ฒ˜์Œ 5๋ช…์˜ ๋ฐ์ดํ„ฐ๋งŒ ์ฝ๊ธฐ
            for (CSVRecord record : parser) {
                if (count >= 5)
                break;

                    UserDTO user = new UserDTO();
                    user.setUserId(record.get("PassengerId"));
                    user.setName(record.get("Name"));
                    user.setGender(record.get("Sex"));
                    user.setAge(record.get("Age"));
                    user.setPclass(record.get("Pclass"));
                    user.setSurvived(record.get("Survived"));
                    user.setSibSp(record.get("SibSp"));
                    user.setParch(record.get("Parch"));
                    user.setTicket(record.get("Ticket"));
                    user.setFare(record.get("Fare"));
                    user.setCabin(record.get("Cabin"));
                    user.setEmbarked(record.get("Embarked"));

                    users.add(user);



                    count++;

                }
               
                parser.close();
                reader.close();

            Messenger messenger = new Messenger();
            return messenger;

        } catch (Exception e) {
            Messenger messenger = new Messenger();
            messenger.setCode(500);
            messenger.setMessage("csv ํŒŒ์ผ์„ ์ฝ๋Š” ์ค‘ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.");
            return messenger;
        }

}}

 

์ด๋ ‡๊ฒŒ ์™„์„ฑ์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹น.