Group Study (2022-2023)/Spring 입문 14

6주차 레퍼런스

추가 공부 참여율이 떨어지는 듯하여, 6주차에 추가 공부 없이 레퍼런스 문서로 질문과 답을 동시에 드리는 방식으로 변경했습니다. 이번 주는 웹 애플리케이션이 어떻게 동작하는지, 어떻게 배포하고 관리하는지 알아보겠습니다. 더 나아가 이러한 배포 프로세스를 자동화하는 CI/CD에 대해 알아보겠습니다. 우리가 개발한 서비스 코드가 웹 애플리케이션의 전체 프로세스에서 어느 지점에 속하는지, 서비스 코드가 동작하기 위해 어떤 자원이 필요한지 파악해보시면 좋겠습니다🤗 자바 웹 애플리케이션 배포 마지막 실습에서는 우리가 그동안 열심히 작성한 웹 서버 애플리케이션을 배포하는 작업을 했습니다. 스크립트 코드를 읽어보면, jar 파일을 생성하고 nohup 명령어로 실행하는 것을 보셨을거에요. 이제 jar 파일이 무엇인지,..

5주차 레퍼런스

추가 공부 참여율이 떨어지는 듯하여, 5주차부터는 추가 공부 없이 레퍼런스 문서로 질문과 답을 동시에 드리는 방식으로 변경했습니다. localhost가 뭘까? 클라우드에 서버를 구축하고 애플리케이션을 실행하면, 해당 서버의 고정 IP로 HTTP 요청을 보내서 원하는 템플릿 파일을 받을 수 있습니다. 그런데 문득 이런 의문이 듭니다. (나만 그랬을 수도..) 지금까지 저희가 개발을 하고 테스트할 때는 브라우저로 localhost:8080 에 접속하여 결과를 확인했습니다. 템플릿 파일은 내 컴퓨터에 있는데, localhost에 요청을 날렸더니 그 파일을 찾아서 브라우저에 출력했습니다. 어떻게 이것이 가능한걸까요? 직관적으로 생각해보면 localhost가 네트워크 상에서 내 컴퓨터를 가리킨다고 할 수 있어요...

4주차 레퍼런스

4주차 레퍼런스 문서와 멤버분들이 추가 공부한 내용을 스크랩했습니다. 4주차 레퍼런스 제공 OAuth2.0 OAuth2 소개 OAuth2는 일종의 인증 프로토콜입니다. 소셜 인증을 통한 로그인 및 권한 제어를 위해 사용됩니다. 그래서 구글, 트위터, 깃허브, 페이스북, 네이버 등 대부분 소셜 인증 기능을 가진 provider는 표준 인증 방식으로 OAuth2를 채택하여 인증 관련 API를 제공합니다. OAuth2의 구성 요소 OAuth2의 구현체를 활용하면, 유저들의 정보를 대량으로 가지고 있는 소셜 회사(구글, 네이버 등)로부터 유저의 데이터를 애플리케이션 서버에 가져와 활용할 수 있습니다. 유저가 서비스를 사용하면서 소셜 로그인을 원할 경우, 해당 요청은 브라우저, 즉 클라이언트로부터 받아옵니다. O..

3주차 레퍼런스

3주차 레퍼런스 문서와 멤버분들이 추가 공부한 내용을 스크랩했습니다. ✅ SSR, CSR 💡 교재 4.1장 이번 챕터의 주제가 화면 구성인 만큼, 템플릿 엔진에 대해서 자세하게 다루었는데요. 우리가 웹 페이지를 위한 서버를 만들고 있기 때문에 템플릿 엔진이 필요합니다. (모바일 앱을 위한 서버라면 HTML을 내려주는 것이 의미가 없으므로 템플릿 엔진이 필요하지 않겠죠?) 서버 템플릿 엔진을 사용하면 SSR(Server Side Rendering) 방식을, 클라이언트 템플릿 엔진을 사용하면 CSR(Client Side Rendering) 방식을 채택하는 것입니다. 추가 실습에서 CSR을 위한 REST 컨트롤러를 만들어봤는데요, 여기서 반환하는 JSON 데이터들을 클라이언트가 받아서 미리 만들어둔 HTML과..

2주차 레퍼런스

1주차 레퍼런스 문서와 멤버분들이 추가 공부한 내용을 스크랩했습니다. ✅ JPA 💡 교재 78p ~ 84p 여러분, 1주차 레퍼런스에서 제가 스프링은 객체 지향 프로그래밍 사상을 위해 태어난 프레임워크를 말씀 드린 것 기억하시나요? JPA도 그와 같은 맥락으로 존재하는 기술입니다. JPA는 애플리케이션에서 데이터베이스를 다루는 기술이면서 코드를 객체 지향적으로 작성할 수 있도록 돕는 기술이에요. 데이터베이스를 다루는 기술이라 함은 서버 애플리케이션이 데이터베이스 서버에 SQL을 통해 데이터 보관과 관리를 요청하는 기술이라고 생각하시면 됩니다. JPA를 사용하기 전에는 MyBatis와 같은 SQL Mapper를 사용했어요. MyBatis를 사용한 코드를 한번 볼까요? (저는 예전에 자바 웹 개발을 배울 때..

1주차 레퍼런스

1주차 레퍼런스 문서와 멤버분들이 추가 공부한 내용을 스크랩했습니다. 1장 1장에서는 개발 환경을 세팅하고 스프링 부트 프로젝트를 생성했습니다. 우리는 하필이면 왜 스프링 프레임워크를 사용하는걸까요? 스프링 개발자 수요가 최근 늘어난 것은 어떠한 이유일까요? 스프링 프레임워크의 정체성이 무엇인지 구글링을 통해 알아봅시다. 스프링 프레임워크는 어떻게 등장했는가? 💡 태초에 EJB가 있었나니.. 스프링 프레임워크는 다른 백엔드 프레임워크와 어떤 부분이 다른가? 💡 스프링 프레임워크는 좋은 객체 지향 설계(OoP)가 가능하다. 스프링과 스프링 부트의 차이점은 무엇인가? 💡 Spring의 약점, 어려운 설정과 버전 관리, 그리고 배포(jar vs war) 2장 2장 실습은 짧았지만 아주 중요한 내용을 포함하고 ..

[spring 입문] 토이프로젝트 - TwoYeon

투연 - with 한채연, 황연진 깃허브 링크 https://github.com/TwoYeon/GDSC-ToyProject GitHub - TwoYeon/GDSC-ToyProject: 우당탕탕 스프링 초보들의 고군분투 레포 우당탕탕 스프링 초보들의 고군분투 레포. Contribute to TwoYeon/GDSC-ToyProject development by creating an account on GitHub. github.com 선택한 기능 대댓글 기능 이미지를 포함한 게시글 작성 및 조회 팀 규칙 이슈 → 코딩 → PR 순서 이슈 템플릿, PR 템플릿 사용 커밋 컨벤션 기능을 구현하기 위해 조사하면서 얻은 인사이트 채연 댓글 https://xerar.tistory.com/44 스프링부트 게시판 API..

[spring 입문] 토이 프로젝트 - BDNSook

BDNSook 깃허브 주소 : https://github.com/BDNSook/GDSC-ToyProject 1. 선택한 기능 게시판 기능에서 꼭 필요하다고 생각하는 기능을 넣자! 댓글 이미지 첨부 2. 기능을 구현하기 위해 조사하면서 얻은 인사이트 댓글 기능 관련 https://dev-coco.tistory.com/132 https://dev-coco.tistory.com/136 https://dev-coco.tistory.com/134 댓글을 작성하고, 수정하고 삭제하는 기능이 마치 게시글을 작성, 수정, 삭제하는 기능과 비슷하다고 생각해서 금방 끝낼 수 있을 줄 알았지만 생각보다 어려움을 많이 겪었다. 게시글을 작성하여 등록하는 것까지는 괜찮았지만 게시글을 삭제하고 수정하는 부분에서 많이 해맸던 것 ..

[spring 입문] 6주차 스터디 - EC2에서 소셜 로그인 하기 + 자바 웹 애플리케이션의 동작과 배포

더보기 목차 1. 교재 내용 실습하기 1-1. EC2에 프로젝트 clone 하기 1-2. 배포 스크립트 만들기 1-3. 외부 Security 파일 등록하기 1-4. 스프링 부트 프로젝트로 RDS 접근하기 1-5. EC2에서 소셜 로그인 하기 2. 실습 중 에러 해결하기 2-1. mysql 드라이버 에러 2-2. test 애플리케이션 빌드 에러 3. 자바 웹 애플리케이션의 동작과 배포 3-1. 자바 웹 애플리케이션 배포 3-2. 웹 애플리케이션이 동작하는 방법 3-3. 지속적인 통합과 배포 1. 교재 내용 실습하기 1-1. EC2에 프로젝트 clone 하기 깃허브 프로젝트 clone 하기 -EC2에 git 설치하기 sudo yum install git -레포 저장할 디렉터리 생성 mkdir ~/app &&..

[spring 입문] 5주차 스터디 - AWS EC2, RDS

교재 6장, 7장 Chap 6. AWS 서버 환경을 만들어보자 -AWS EC2 클라우드 서비스 : AWS, Azure, GCP … 외부에서 생성한 서비스에 접근 가능한 방법 ⇒ 24시간 작동하는 서버가 필수적 이때 집 PC를 24시간 내내 구동은 사실상 불가능 → 클라우드 서비스를 통해 제공 인터넷(클라우드)를 통해 서버, 스토리지, 데이터베이스, 네트워크, 소프트웨어, 모니터링 등 컴퓨터 서비스 제공 클라우드 서비스 중 하나 모든 AWS 서비스는 IaaS 사용 IaaS (Infrastructure as a Service) 기존 물리 장비 + 미들웨어 함께 묶어둔 추상화 서비스 가상머신, 스토리지, 네트워크, 운영체제 등 IT 인프라 대여 서비스 EX) AWS - EC2, S3 등 존재 AWS 서버 환경..