풀스택 백엔드 2026.06.16

syyu21b·2026년 6월 16일

풀스택 - 백엔드

목록 보기
31/49
post-thumbnail

[능력 단위 평가]

[문제 1] 다음 빈칸을 채우시오.

Spring에서 모듈 간 결합도를 낮추기 위해 구체 클래스 대신 ( ① )에 의존하도록 설계하며, 의존 객체를 외부에서 주입받는 방식을 ( ② )(이)라고 한다.

[정답 1]

  1. 인터페이스

  2. 의존성주입


[문제 2] 아래 Spring 계층 구조에서 빈칸을 채우시오.

( ① ) → ( ② ) → Repository
각 계층의 역할: ①은 HTTP 요청을 받고, ②는 비즈니스 로직을 처리한다.

[정답 2]

  1. @Controller

  2. @Service


[문제 3] 다음 설명에서 괄호 안에 알맞은 어노테이션을 쓰시오.

DB 접근 계층 클래스에 붙이는 어노테이션: ( ① )
비즈니스 로직 계층 클래스에 붙이는 어노테이션: ( ② )

[정답 3]

  1. @Repository

  2. @Service


[문제 4] 아래 코드에서 잘못된 부분을 찾아 수정하시오.

@Controller
public class MemberController {

   private final MemberRepository memberRepository;

   public MemberController(MemberRepository memberRepository) {
       this.memberRepository = memberRepository;
   }

   @GetMapping("/")
   public String index(Model model) {
       model.addAttribute("members", memberRepository.findAll());
       return "index";
   }
}

[정답 4]

@Controller
public class MemberController {

    private final MemberService memberService;

    public MemberController(MemberService memberService) {
        this.memberService = memberService;
    }

    @GetMapping("/")
    public String index(Model model) {

        model.addAttribute("members", memberService.findMembers());

        return "index";

    }

}

[문제 5] 소프트웨어 설계 지표 중 모듈 간 결합도와 모듈 내부 응집도에 대해 올바른 설명을 고르시오.

① 결합도는 높을수록, 응집도는 낮을수록 좋다
② 결합도는 낮을수록, 응집도는 높을수록 좋다
③ 결합도와 응집도 모두 높을수록 좋다
④ 결합도와 응집도 모두 낮을수록 좋다

[정답 5]

② 결합도는 낮을수록, 응집도는 높을수록 좋다


[문제 6] MemberRepository를 인터페이스로 설계하면 어떤 장점이 있는지 한 문장으로 서술하시오.

[정답 6]

인터페이스와 구현을 분리해서, 데이터베이스가 바뀌더라도 핵심 코드를 수정하지 않고 유연하게 변경할 수 있습니다.


[문제 7] 아래 조건에 맞는 Member 클래스를 작성하시오.

조건:
1) 패키지: com.example.member
2) 필드: id (int), name (String), email (String)
3) 기본 생성자, 전체 필드 생성자 포함
4) 모든 필드의 Getter / Setter 포함

  • Lombok은 없다는 가정 하에 작성

[정답 7]

package com.example.member;

public class Member {

    private int id;
    private String name;
    private String email;

    public Member() {
    }

    public Member(int id, String name, String email) {
        this.id = id;
        this.name = name;
        this.email = email;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }
}

0개의 댓글