24.05.13 월 TIL(Today I Learned)

신민금·2024년 5월 13일
0
post-thumbnail

TIL(Today I Learned)

: 매일 저녁, 하루를 마무리하며 작성 !
: ⭕ 지식 위주, 학습한 것을 노트 정리한다고 생각하고 작성하면서 머리 속 흩어져있는 지식들을 정리 !


알고리즘 코드카타

  • 문제 설명
    두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요.
    예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다.
  • 제한사항
    a와 b가 같은 경우는 둘 중 아무 수나 리턴하세요.
    a와 b는 -10,000,000 이상 10,000,000 이하인 정수입니다.
    a와 b의 대소관계는 정해져있지 않습니다.
class Solution {
    public long solution(int a, int b) {
        long answer = 0;
        if ( a == b ){
            answer = a;
        }else if ( a > b ){
            for(int i=0; (b+i)<=a; i++)
                answer = answer + (b + i);
            }else{
            for(int i=0; (a+i)<=b; i++)
                answer = answer + (a + i);
            
        }
        return answer;
    }
}

Spring 입문주차 1주차

1-1 Java와 Intellij 설치하기

1-2 프로젝트 생성과 Git 연동

1-3 그레이들(Gradle)이란 무엇일까

  1. Gradle이란?
  • Gradle은 빌드 자동화 시스템
  • 우리가 작성한 Java 코드를 설정에 맞게 자동으로 Build (소스 코드를 실행 가능한 결과물로 만드는 일련의 과정)
  1. build.gradle
  • build.gradle은 Gradle 기반의 빌드 스크립트
  • groovy 혹은 kotlin 언어로 스크립트를 작성

1-4 서버란 무엇일까?

  1. 네트워크란?
    네트워크는 여러대의 컴퓨터 또는 장비가 서로 연결되어서 정보를 주고 받을 수 있게 도와주는 기술

  2. Client와 Server

  • Client 즉, 브라우저에서 서버에 정보를 요청하는 과정을 간략하게 표현한 부분
  • 사용자는 브라우저를 이용하여 서버에 정보를 요청하고 응답을 받습니다.
  • 사용자의 요청이 서버에 도달하기 위해서는 해당 서버의 정보가 필요
  • 이 때 사용자의 요청이 해당 서버에 정확하게 도달할 수 있게 제공되는 정보가 IP 주소 (거대한 네트워크망에서 여러분의 컴퓨터를 식별하기 위한 위치 주소)
  1. 웹 서버란?
  • 인터넷을 통해 HTTP를 이용하여 웹상의 클라이언트의 요청을 응답해주는 통신을 하는 일종의 컴퓨터
  • 웹 서버의 기본 동작 원리
    1 : 브라우저를 통해 HTTP Request로 웹사이트를 웹서버에 요청
    2 : 웹서버는 요청을 승인하고 HTTP Response를 통해 웹사이트 데이터를 브라우저에 전송
    3 : 마지막으로 브라우저는 서버에서 받아온 데이터를 이용해 웹사이트를 브라우저에 그려내는 일
    (기본적으로 브라우저가 웹서버에 요청을 할때는 항상 GET method로 요청)
  1. API란?
  1. RESTful API란?

  1. Apache Tomcat이란 무엇일까?

    Tomcat은 동적인 처리를 할 수 있는 웹 서버를 만들기 위한 웹 컨테이너

1-5 HTTP란 무엇일까?

  1. HTTP(HyperText Transfer Protocol)란?
  • 데이터를 주고 받는 양식을 정의한 "통신 규약"중 하나가 HTTP
  • 매우 범용적인 양식을 가지고 있어 전 세계에서 제일 널리 쓰이는 통신 규약
  • 통신 규약이란, 컴퓨터끼리 데이터를 주고 받을 때 정해둔 약속을 의미
  1. 우리는 어떻게 HTTP로 데이터를 주고 받을까?
  • HTTP에서는 언제나 Request, Response라는 개념이 존재
  1. 브라우저에서 HTTP가 동작하는 것을 직접 확인해보기 - 실습!

  2. 추가 데이터? 데이터? 뭐가 다른걸까?

  • Method (호출/요청 방식)

  • Header (추가 데이터. 메타 데이터)

  • Payload (데이터. 실제 데이터)

1-6 테스트 코드

  1. 테스트의 필요성
  • 블랙박스 테스팅

  • 개발자 테스트

  1. JUnit 사용 설정
    JUnit이란 자바 프로그래밍 언어 용 단위 테스트 프레임워크

  2. 테스트 파일 생성 - 실습 !

  3. 테스트 코드 작성해보기!

package com.sparta.springprepare.calculator;

import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;

class CalculatorTest {
    @Test
    @DisplayName("더하기 테스트")
    void test1() {
        Calculator calculator = new Calculator();
        Double result = calculator.operate(8, "+", 2);
        System.out.println("result = " + result);

        Assertions.assertEquals(10, result);
    }

    @Test
    @DisplayName("나누기 테스트")
    void test2() {
        Calculator calculator = new Calculator();
        Double result = calculator.operate(8, "/", 2);
        System.out.println("result = " + result);

        Assertions.assertEquals(4, result);
    }
}

개인 프로젝트 진행

Goal: "나만의 일정 관리 앱 서버 만들기"

  1. 구현하고자 하는 서비스의 전체적인 흐름을 파악하고 필요한 기능을 설계
  2. Use Case Diagram, API 명세서, ERD를 작성
  3. Spring Boot를 기반으로 CRUD(Create, Read, Update, Delete) 기능이 포함된 REST API를 생성
profile
야옹

0개의 댓글