Group Study (2022-2023) 83

[Coding Test] 스터디 계획 및 그라운드 룰

💗스터디원 스터디장 : 신지연 스터디원 : 김규리, 김은지, 민휘, 서희, 정영주, 조은영, 한채연 💗진행방법 & 그라운드 룰 일주일에 4문제 이상 토요일까지 코딩테스트 인터뷰하듯이 깃허브에 정리 후 PR 올리기 (풀이과정, 내 풀이의 시간 복잡도, 사용한 자료구조 또는 알고리즘에 대해 공부한 점 자유로 추가해서 정리) 해당 주차에 백준아이디로 폴더 만들기 stutynote.md 파일 하나에 정리 후 PR 월요일 7시 30분 전까지 최소 두명의 코드를 리뷰하고 코멘트달기 GDSC 블로그에 돌아가면서 각 문제 별 코드 & 풀이 과정 적기 벌금 : 1,000원 / 1문제 리뷰 코멘트 : 2주 이상 코멘트를 남기지 않을 시, 9, 10주차 블로그 작성 및 발표 💗주차별 문제 및 발표자 코딩테스트 나올만한 유형..

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 심화] 8주차 스터디 - 8장 스프링이란 무엇인가?

8.1 스프링의 정의 자바 엔터프라이즈 개발을 편하게 해주는 오픈소스 경량급 애플리케이션 프레임워크 애플리케이션 프레임워크란? 일반적인 라이브러리나 프레임워크, 특정 계층에서 동작하는 한 가지 기술 분야에 집중 ex1) 웹 계층을 MVC 구조로 손쉽게 만들 수 있게 함 ex2) 포맷과 출력장치 유연하게 변경가능한 애플리케이션 로그 기능 제공 ex3) 관계형 DB와 자바 obj 매핑해주는 ORM 기술 제공 등 애플리케이션 프레임 워크 특정 계층,기술, 업무 분야에 국한 X, 애플리케이션 전 영역을 포괄하는 범용적인 프레임워크 애플리케이션 전 영역을 관통하는 일관된 프로그래밍 모델과 핵심 기술을 바탕으로 각 분야의 특성에 맞는 필요를 채워주기 때문에, 애플리케이션을 빠르고 효과적으로 개발할 수 있다. 스프링..