모각코 3주차 3회모임 결과(22.07.18 / 월요일 / 13시 ~ 16시)

Hyoin Jeong·2022년 7월 18일
0

Build Tool 선택하기

  • Maven
  • Gradle

Build란 ?

  • 필요한 라이브러리를 다운 받고 classpath에 추가
  • 소스 코드를 컴파일
  • 테스트 실행
  • 컴파일된 코드를 packaing → jar / war / zip etc
  • packing된 파일을 주로 artifacts 라고 부르고 서버나 레파지토리에 배포

→ 해당 일들을 자동화해주고 기술해주는 것

1. Maven

  • 빌드 도구로써 주로 자바기반의 프로젝트에서 많이 사용됩니다.
  • XML기반으로 설정 모델을 제공하고 pom.xml 파일로 작성할 수 있습니다.
    💡 POM은 project object model의 약어입니다.

Maven’s Objectives

https://maven.apache.org/what-is-maven.html

  • 위의 Maven 홈페이지에서 Maven 이 이루고자 하는 목표를 확인가능

왜 Maven을 사용할까?

  • archetypes 라는 프로젝트 템플릿을 제공 → 매번 같은 설정을 반복하지 않게 도와줌
  • 프로젝트에서 사용하는 외부 라이브러리인 dependency 를 관리해줌
  • 플러인과 외부 라이브러리를 분리하여 관리
  • dependency를 다운닫는 Repository가 로컬이 될 수도 있고 Maven Central 와 같은 공개된
    Repository가 될 수도 있음

2. Gradle

  • 또 다른 Build Tool로서 Groovy 기반으로 빌드 스크립트를 작성하게 도와줌. 최근에는 코틀린도 지원해서 코틀린 기반으로 Build Script를 작성가능

1. Spring : 여러 프로젝트로 구성

  • 자주 사용되는 프로젝트 : Spring Boot, Spring Data, Spring Security, Spring Cloud

2. Spring Framework : 여러 모듈로 구성

  • setup하는데 많은 시간 소요 → spring boot가 해결

3. Spring Boot

  • Spring Framework의 여러 프로젝트중 하나의 프로젝트
  • 주요 기능
    • SpringApplication을 통한 손쉬운 실행
    • Auto Configuration
    • 쉬운 외부 환경 설정 - Properties, YAML, Command line 설정 등 프로파일을 통한 실행환경 관리
    • Packaging Executable Jar
    • Developer Tools

의존성이란?

어떤 객체가 협력하기 위해 다른 객체를 필요로 할 때 두 객체 사이의 의존성이 존재하게 된다.
의존성은 실행 시점과 구현 시점에 서로 다른 의미를 가짐

  • 컴파일타임 의존성: 코드를 작성하는 시점에서 발생하는 의존성. 클래스 사이의 의존성.
  • 런타임 의존성: 애플리케이션이 실행되는 시점의 의존성. 객체 사이의 의존성.

결합도란 ?

하나의 객체가 변경이 일어날 때에 관계를 맺고 있는 다른 객체에게 변화를 요구하는 정도

  • 의존성이 바람직할 때 느슨한 결합도 또는 약한 결합도
  • 반대로 두 요소의 의존성이 바람직하지 못할 때 단단한 결함도 또는 강한 결합도

⇒ 느슨한 결합도로 코드 변경이 필요

0개의 댓글