컴공생의 발자취

[내일배움캠프 20일차 TIL] Spring 입문 및 새로운 팀 본문

🤝 활동/내배캠TIL

[내일배움캠프 20일차 TIL] Spring 입문 및 새로운 팀

MNY 2024. 5. 14. 12:15
728x90
반응형
오늘의 진도 : Spring 입문주차 1-15 HTTP 데이터를 객체로 처리하는 방법까지...

Spring을 드뎌 첨 배운당.. 근데 뭐가 많당..
오늘의 학습, 코드카타, 오늘의 회고 이렇게 3개의 큰 틀로 나누어 정리할 것이다.

 

💡 오늘의 학습 키워드

- Spring 입문주차 1주차 -
Spring boot 프로젝트 만들기
fatal:refusing to merge unrelated histories
gradle
네트워크
웹서버
API
REST
Web Server vs WAS
Status Code
HTTP 구성 요소
버그
lombok 애너테이션

- 코트카타 : MySQL -
문자열 부분 가져오기(LEFT, MID, RIGHT)

 

Spring boot 프로젝트 만들기

  1. 라이브러리 추가
    • spring web
    • lombok
  2. 설정
    • auto import
    • general
auto import general

 

fatal:refusing to merge unrelated histories

* 이미 존재하는 두 프로젝트의 기록(history)을 저장하는 드문 상황에 사용

git pull origin 브런치명 --allow-unrelated-histories

 

gradle

: 라이브러리들과의 의존성을 자동으로 관리해주기 때문에 라이브러리들 간의 충돌 걱정없이 개발에만 집중 가능!

 

* maven repository? 라이브러리들을 모아둔 저장소

* 라이브러리란? 필요한 기능들이 모여있는 코드의 묶음

 

네트워크

: 주소(IP) + 받는사람(포트번호)를 필요

 

웹서버

: 일종의 컴퓨터

 

API

: 다른 소프트웨어와 소통하기 위해 따라야 하는 규칙

 

REST(Representational State Transfer)

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

* 처음에 인터넷과 같은 복잡한 네트워크에서 통신을 관리하기 위한 지침으로 만들어 짐

 

  • REST API? REST 아키텍처 스타일을 따르는 API
  • RESTful 웹 서비스? REST 아키텍처를 구현하는 웹 서비스

 

Web Server vs WAS

  • Web Server
    ex) Apache, Nginx 등
  1. 정적인 콘텐츠 즉, 이미 완성이 되어있는 HTML과 같은 문서를 브라우저로 전달
  2. 브라우저로부터 ‘로그인하여 MyPage를 요청’과 같은 동적인 요청이 들어왔을 때 웹 서버 자체적으로 처리하기 어렵기 때문에 해당 요청을 WAS에 전달

 

  • WAS : 사용하면 로그인,회원가입을 처리하거나 게시물을 조회하거나 정렬하는 등의 다양한 로직들을 수행하는 프로그램을 동작
    ex) Tomcat, JBoss 등

 

Status Code

  • 1xx : 요청 시작 / 현재 처리 되고 있음 -> 서버와의 연결상태 확인
  • 2xx : 요청 성공적으로 처리 (most use : 200)
  • 3xx : 추가적인 조치를 취해야함을 나타냄 -> 페이지 이동 / 리다이렉션에서 사용
  • 4xx : 클라이언트에 오류 / 인증 오류 (most use : 404)
  • 5xx : 서버에 오류 / 과부하 (most use : 500)

 

HTTP 구성 요소

* headers : 추가 데이터

* response : 그냥 데이터

 

  1. method(호출/요청 방식) : GET 얻을 때, POST 게시
  2. Header(추가 데이터, 메타 데이터) : 의사 표현을 위한 데이터
  3. Payload(데이터, 실제 데이터) 
    * GET method 제외하고 모두 Payload를 보낼 수 있음

 

버그

: 소프트웨어가 예상하지 못한 결과를 내는 것!!!

 

lombok 애너테이션

  • Getter : Getter 메서드
  • Setter : Setter 메서드
  • AllArgsConstructor : 필드를 가지는 생성자
  • NoArgsConstructor : 기본 생성자
  • RequiredArgsConstructor : final이 있는 필드의 생성자

 

문자열 부분 가져오기(LEFT, MID, RIGHT)

  • LEFT : 문자에 왼쪽을 기준으로 일정 갯수를 가져오는 함수
LEFT(문자, 가져올 갯수)

 

  • MID : 문자에 지정한 시작 위치를 기준으로 일정 갯수를 가져오는 함수
    * SUBSTR과 SUBSTRING 함수의 동의어
MID(문자, 시작 위치, 가져올 갯수)
-- 또는 SUBSTR(문자, 시작 위치, 가져올 갯수)
-- 또는 SUBSTRING(문자, 시작 위치, 가져올 갯수)

 

  • RHGIT : 문자에 오른쪽을 기준으로 일정 갯수를 가져오는 함수
RIGHT(문자, 시작 위치, 가져올 갯수)

 

* 참고한 블로그

 

[MySQL] 문자열 부분 가져오기 (LEFT, MID, RIGHT 함수)

▶MySQL 문자열 부분 가져오기 (LEFT, MID, RIGHT 함수) ▶설명 MySQL에서 문자열에 일부분을 가져오는 함수는 대표적으로 3가지가 존재합니다. LEFT : 문자에 왼쪽을 기준으로 일정 갯수를 가져오는 함수

extbrain.tistory.com

 


코드 카타

* 프로그래머스로 진행

 

  • 알고리즘
    • 문자열 다루기 기본
  • SQL
    • 카테고리별 상품 개수 구하기

 


오늘의 회고

  • 12시간 중 얼마나 몰입했는가?

12시간 중 절반 정도이지 않을까? 아침 6시부터 시작했으니..

그래도 목표치만큼은 했다.

1주차 강의가 약 20개 정도 되는데 내 목표는 15개 정도까지 듣는 것이었으니까!

 

  • 오늘의 생각

아침부터 일어났더니 힘들다.

아침부터 일어나서 강의 받아서 듣고 새로운 팀원들을 만나고 서로 이런 저런 간단한 얘기 나누다가

나는 점심 먹고 시험 응시 확인서 받으러 직접 갔다가 카페로 옮기고 강의 열심히 듣다가 12시간 채우고 자격증 조금 살펴보고.. 친구랑 열심히 놀았지! 생각이 아니라 걍 일기네

 

  • 내일 학습할 것은 무엇인지

열심히 강의 들어야 된다..

개인과제 할 시간도 부족하다ㅠ

728x90
반응형