[Spring 입문] 시작 1 (Day1-0203)

왕감자·2025년 2월 2일

2025 내일배움캠프

목록 보기
1/39
post-thumbnail

Gradle

💡 빌드 자동화 시스템

  • 우리가 작성한 java 코드를 설정에 맞게 자동으로 빌드
  • java 코드를 실행 가능한 jar파일로 만들어줌

✔ 빌드(Build)

작성한 소스코드를 실행 가능한 결과물로 만드는 일련의 과정


build.gradle

: gradle 기반의 빌드 스크립트

  • 라이브러리 의존성을 쉽게 관리
    • dependencies에 라이브러리 추가 ➞ Maven Repository에서 다운로드
  • 다른 라이브러리 간의 의존성 자동 관리



서버

택배네트워크
주소(IP)경기도 00시 ···192.168.@@.@
받는사람(포트)감자8080

웹서버

: 인터넷을 통해 HTTP를 이용하여 웹상의 클라이언트의 요청을 응답해주는 통신을 하는 일종의 컴퓨터

1) 사용자가 브라우저를 통해 서버에 Http 요청(Http Request) 보냄
2) 서버가 요청을 처리하고 결과를 Http 응답(Http Response)에 담아 브라우저에 전송
3) 브라우저는 서버에서 전송한 데이터를 웹사이트를 그려냄


RESTful API

: API 작동 방식에 대한 조건을 부과하는 소프트웨어 아키텍처

  • 서버의 API가 적절하게 http를 준수하며 잘 설계되어있으면 RESTful

Apache Tomcat

Web Server VS Web Application Server(WAS)

  • Web Server : HTTP 요청을 받아 정적 컨텐츠 전달 (ex. Apache, Nginx)
  • Web Application Server (WAS) : 동적 요청 처리 (ex. Tomcat, JBoss)

동적 요청이 들어왔을 때 Web Server가 해당 요청을 WAS에 전달

Web Server + WAS = Apache Tomcat




API 만들기

API 설계

MethodURL설명
인사GET/api/helloHello World!출력
@RestController
public class HelloController {

    @GetMapping("/api/hello")
    public String hello() {
        return "Hello World!";
    }
}



HTTP

HyperText Transfer Protocol
: 데이터를 주고 받는 양식을 정의한 통신 규약




테스트 코드

  • 버그(bug) : 소프트웨어가 예상하지 못한 결과를 내는 것. 소스코드나 설계과정에서의 오류로 인해 발생
    ➡ 테스트 코드는 소프트웨어가 예상한대로 결과를 내는지 체크하는 것
    ➡ 테스트 코드를 통해 버그 찾아내기

JUnit

단축키: Ctrl + Shift + t

//계산기

public class Calculator {

    public Double operate(double num1, String op, double num2) {
        switch (op) {
            case "*":
                return num1 * num2;
            case "/":
                if(num2 != 0) {
                    return num1 / num2;
                } else return null;
            case "+":
                return num1 + num2;
            case "-":
                return num1 - num2;
            default:
                throw new IllegalArgumentException("잘못된 연산자입니다");
        }
    }
}
//CalculatorTest
@Test
    @DisplayName("나누기 테스트")
    void test2() {
        Calculator calculator = new Calculator();
        Double result = calculator.operate(9, "/", 0);
        System.out.println("result = " + result);

        Assertions.assertEquals(null, result);
    }




Lombok

자바 프로젝트를 진행하는데 거의 필수적으로 필요한 메서드/생성자 등을 자동 생성해줌으로써 코드를 절약할 수 있도록 도와주는 라이브러리

// 소스 코드
@Getter
@Setter
public class Memo {
    private String username;
    private String contents;
}
// 컴파일 된 클래스 코드
public class Memo {
    private String username;
    private String contents;

    public Memo() {
    }

    @Generated // 디컴파일러가 Lombok이 자동 생성한 메서드임을 표시하기 위해 임의로 붙임
    public String getUsername() {
        return this.username;
    }

    @Generated
    public String getContents() {
        return this.contents;
    }

    @Generated
    public void setUsername(final String username) {
        this.username = username;
    }

    @Generated
    public void setContents(final String contents) {
        this.contents = contents;
    }
}

Annotation




application.properties

Spring과 관련된 설정을 할 때 사용되는 파일


server.port=8081

0개의 댓글