[패스트캠퍼스] 자바&스프링 강의 5주차

YunGyu Choi·2023년 7월 8일
0

FastCampus JavaSpring

목록 보기
5/8

웹 개발 역량강화를 위해 내일배움카드로 수강할 수 있는 백엔드 교육과정을 찾아보았다. 남궁성&박매일 님의 '나도 할 수 있는 Java & Spring 웹 개발 종합반'이 교육일정이나 커리큘럼이 무난한 것 같아서 수강하게 되었다. 8주 총 65시간의 과정을 포스팅하고자 한다.

커리큘럼

주차학습 내용
1주차생각,표현,코딩하기란?
2주차Java 기초 다지기1
3주차Java 기초 다지기2
4주차객체지향 프로그래밍 시작하기
추가1객체지향 프로그래밍 설계하기
5주차Spring 시작하기
6주차Spring MVC part1
7주차Spring MVC part2
8주차Spring MVC part3
추가2Spring DI 와 AOP
파이널 프로젝트

Spring이란?

스프링의 역사

CGI(Common Gateway Interface)

  • 기존의 웹서버는 정적 데이터만 전달할 수 있는 수준이었다. 이에 동적 데이터를 처리하기 위해 등장
  • 클라이언트의 요구를 응용 프로그램에 전달하고, 그 결과를 사용자에게 되돌려주기 위한 방법
  • C와 같은 언어를 주력으로 구현된 인터페이스

Servlet

  • CGI는 서버에서 Process단위로 실행 -> 클라이언트 요청 하나에 하나의 프로세스가 생성 -> 요청이 늘어나면 프로세스가 계속 증가하는 문제 발생
  • 서버 부하를 줄이기 위해 스레드 단위로 동작하는 Java Servlet 등장
  • 그러나 서블릿은 웹서버와 웹어플리케이션간 서로 다른 언어와 체계로 인해 데이터 교환이 어려움

JSP

  • Java Servelt에서 HTML 출력을 작성하기 너무 힘드니까 HTML에 Java코드 넣어서 쓸 수 있게 한 것
  • HTML 안에 자바 코드를 포함한 서버사이드 스크립트

EJB(Enterprice Java Bean)

  • Java Bean : 자바 객체를 재사용 가능하게 컴포넌트화(독립적 단위 모듈화) 시킬 수 있는 코딩 방침 정의
  • 비즈니스 객체를 관리하는 컨테이너를 만들어 필요할 때마다 컨테이너로부터 객체를 받는 식으로 관리하자는 아이디어
  • 목적은 객체간의 의존성 해결이었으나 실제 비즈니스 로직보다 EJB 컨테이너를 사용하기 위한 코드가 많아지는 등 개발 난이도 상승

Spring

  • EJB를 사용하지 않고도 객체간 의존성을 해결 가능한 컨테이너가 목적

  • WAS의 기능적인 부분을 유지하되, 기술 침투적 부분을 해결

  • POJO(Plain Old Java Object, 특정 클래스를 상속하거나 인터페이스를 구현하지 않는 평범한 자바 클래스)를 이용해 EJB의 기능을 유지하면서 복잡서응ㄹ 제거하고 객체 라이프 사이클 관리

  • Container : 인스턴스의 생명주기를 관리하고 생성된 인스턴스들에게 추가적인 기능을 제공

  • Bean Factory : 스프링 설정파일에 등록된 빈 객체를 생성/관리하는 가장 기본적인 컨테이너 기능만 제공, 컨테이너가 구동될 때 객체 생성하지 않고, 클라이언트가 요청할 시에만 생성

  • ApplicationContext : Bean Factory를 확장한 컨테이너

스프링 설치


스프링 설치와 관련된 사항은 남궁성님의 깃허브에 방문하면 도움을 받을 수 있다.

SDK설치

sdkman 설치 // 자바 뿐만아니라 프로그래밍 언어 버전관리 도와줌

[터미널 창] curl -s "https://get.sdkman.io" | bash
[터미널 창] source "$HOME/.sdkman/bin/sdkman-init.sh"
[터미널 창] sdk version // 설치 확인
[터미널 창] sdk list java // 설치할 수 있는 자바 목록 보기
[터미널 창] sdk install java 11.0.19-amzn // 리스트로 확인한 것 중 다운받을 버전 넣기
[터미널 창] sdk use java 11.0.19-amzn // 사용하기
[터미널 창] sdk current java // 현재 사용 버전 확인
[터미널 창] echo $JAVA_HOME // 환경변수 자동 설정 확인

Tomcat 설치

다운 받고 압축 풀고 홈디렉토리로 옮기면 끝
Mac home 디렉토리 이동 방법 파일열고 [command + shifht + H]
cd ~/톰켓디렉토리경로/bin
./startup.sh <- 톰캣 실행
./sutdown.sh <- 톰캣 종료

M1 mac STS 설치 가이드

남궁성 강사님 티스토리 : https://codechobo.tistory.com/28

AWS

  • 아마존 웹 서비스의 약자로 클라우드 컴퓨터 분야에서 세계 1위 점유율 차지하고 있는 아마존 닷컴의 콜라우드 컴퓨팅 시스템

EC2

독립된 컴퓨터를 임대해주는 서비스

S3(Simple Strage Service)

인터넷용 스토리지 서비스로 개발자가 더 쉽게 웹 규모 컴퓨팅 작업을 수행할 수 있도록 돕는 서비스

RDS(Relational Database SErvice)

관계형 데이터베이스를 제공하는 AWS의 서비스

관련용어

  • on-premise : 서버를 직접 운영하는 방식
  • serverless : 서버 작업을 서버 내부가 아닌 클라우드 서비스로 처리
  • Region : 데이터 센터가 물리적으로 존재하는 곳
  • CDN(Content Delivery Network) : 정적 리소스를 빠르게 제공할 수 있게 전세계의 캐시서버에 복제해주는 서비스

느낀점

언제나 환경설정이 까다롭다고 느꼈다. 사실 그냥 설치만하면 되는데 무슨 강의가 이렇게 길고 많냐고 생각할 수 있지만 운영체제마다 다르고 하드웨어마다 다르고, 설치하려는 라이브러리의 버전마다 다르고 호환성문제 등 여러 문제가 존재하기 때문에 차분히 강의를 들으면서 따라서 설치하는 것이 좋았다.

profile
velog에는 이론을 주로 정리하고, 코드와 관련된 것은 Git-hub로 관리하고 있어요. 포트폴리오는 링크된 Yun Lab 홈페이지를 참고해주시면 감사하겠습니다!

0개의 댓글