+ 00 00 0000

Have any Questions?

04_Simple Coding – Backend – Model – 기본 요약

04_Simple Coding – Backend – Model – 기본 요약

📃 요약

실무에서는 MVC 디자인 패턴 속해서 스프링부트를 사용해 코딩을 진행함. 파일관리 시 파일을 용도에 맞게 정리하듯이 MVC 디자인 패턴도 패키지 및 클래스를 용도에 맞게 분류해서 코딩을 진행함

요소 기술 :

– Basic : java & spring boot

📃 기술 구현

스펙 :

- intellij
- java
- spring boot

📃 Model :

- 
- 함수 위에 요청받은 특정 url 이 있음
- return 값이 json 데이터임

Lombok :

- build.gradle 에 라이브러리 추가 (프로젝트 생성시 추가되었다면 생략)
    // 롬북 라이브러리 #1
    compileOnly 'org.projectlombok:lombok'
    // 롬북 라이브러리 #2
    annotationProcessor 'org.projectlombok:lombok'

Lombok :

- 특수한 기능을 제공하는 어노테이션이 많음
- @Setter : 모델 클래스의 위에 사용해서 Setter 함수 자동생성
- @Getter : 모델 클래스의 위에 사용해서 Getter 함수 자동생성
- @ToString: 모델 클래스의 위에 사용해서 ToString() 함수 자동 재정의
- @NoArgsConstructor : 모델 클래스에 사용, 기본 생성자 자동 생성
- @AllArgsConstructor : 모델 클래스에 사용, 속성에 대한 매개변수가 모두 있는  생성자 자동 생성
사용법 :
@Getter
@Setter
@ToString
@NoArgsConstructor
public class 클래스명 {
    private 자료형 변수명;
    private 자료형 변수명;
    ...
}

예 : 
@Getter
@Setter
@ToString
@NoArgsConstructor
public class Board {
    private Integer id;
    private String title;
    private String content;

    @Builder
    public Board(Integer id, String title, String content) {
        super();
        this.id = id;
        this.title = title;
        this.content = content;
    }
}

@Service :

- 스프링 부트는 서버가 로딩될 때 객체를 미리 생성해서 관리하는데 이 때 미리 클래스명 앞에 붙이면 그 객체가 자동 생성됨(마크된 객체)
- 클래스 위에 달고, 달린 클래스는 서버가 가동될때 자동으로 객체 생성됨(IOC)
- 유사 어노테이션 : @Repository, @Component, @Bean 등
- 주로 서비스 클래스 위에 붙임
    1) 서비스 : 주로 업무 로직(비지니스 로직)을 작성하는 클래스

@Autowired :

- 스프링 부트 서버가 로딩될 때 @Service 등으로 미리 생성된 객체를 이름으로 받아오고자 할 때 사용
- 스프링에서는 개발자가 직접 new 연산자로 객체 생성하는 것을 지양하고 스프링 이 객체를 생성하고 생성된 객체를 전달함

@Slf4j 환경 설정 :

- build.gradle 에 라이브러리 추가 : 
    ...
//  todo: logback , log4jdbc 설정
    implementation 'org.bgee.log4jdbc-log4j2:log4jdbc-log4j2-jdbc4.1:1.16'
    implementation 'ch.qos.logback:logback-classic:1.2.11'
    implementation 'org.slf4j:slf4j-api:1.7.36'
    implementation 'org.slf4j:jcl-over-slf4j:1.7.36'

@Slf4j :

- 로그를 출력하기 위한 인터페이스 
- Façade 디자인 패턴으로 만들어짐, 
- 다양한 구현체 (Logback, Log4j2 등) 를 상황에 맞게 끼울 수 있음(다형성) 
- Lombok 에서 제공함
- 설치 : Logback 프러퍼티 파일2개 복사, build.gradle 라이브러리 4개 추가
    1) log4jdbc.log4j2.properties : sql 로그를 출력하기 위한 설정파일
    2) logback-spring.xml : logback 의 다양한 레벨 옵션 설정 
- 출력함수 : Trace > Warn > Info > Debug > Error 레벨 옵션이 있음 
    1) Trace : 가장 많은 로그 정보
    2) Error : 가장 짧은 로그 정보
    3) 주로 Debug 또는 Info 함수를 많이 사용함
사용법 :
@Slf4j
@Controller
@RequestMapping("/공통url")
public class 함수명 {

    @GetMapping("/url2")   // /공통url/url2
    public String getDeptAll(Model model) {

        실행문;

        return "이동할jsp페이지명";
    }
}

예 :
@Slf4j
@Controller
@RequestMapping("/exam01")
public class DeptController {

    @Autowired
    DeptService deptService;

    @GetMapping("/dept")
    public String getDeptAll(Model model) {

//      TODO: 로그 찍기
        log.debug(list.toString());

        return "exam01/dept/dept_all.jsp";
    }
}

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다