본문 바로가기
  • 실행력이 모든걸 결정한다
개발 프로젝트/[팀] Web - SQL 교육 사이트

[팀 프로젝트] SQL 교육 사이트 - 20220708 안내 사항

by 김코더 김주역 2022. 7. 8.
반응형

1. 어제 회의 결과

  • 주제는 SQL 교육 사이트로 선정
  • DB 연동 방식은 JPA를 사용
  • 프로젝트 초심자도 있음을 고려하여 스터디 그룹 위주로 진행하고, 학습의 결과물을 프로젝트 진행으로 나타내기로 결정
  • 프로젝트에 대한 설문, 실력 테스트 진행

 

 

 

2. 설문 결과 취합

- 원하는 프로젝트 기간 : 가급적 올해 안에 했으면 하는 의견이 많아서 그렇게 하기로 함

- 원하는 프로젝트 요일 : 각자의 일정이 많이 다른 관계로, 요일을 따로 정해서 코딩하기보다는 일정 기간 내에 주어진 할당량을 완수하는 것을 목표로 하는 방식으로 진행하기로 함

- 회의 내용 외에 추가하고 싶은 기술 스택 : 회의 때 충분히 결정 했고, 그 외에는 프로젝트를 진행하면서 결정하기로 함

- 스프링 경험 : 진행이 불가능할 정도의 실력을 가지고 있는 팀원은 없어보임

- 선호하는 업무 강도 (0-10) : 평균 6

- 협업에 대한 자신의 생각 및 각오 : 모두 협업에 대한 좋은 마인드를 가지고 있음

 

 

 

3. 실력테스트 결과

1) 실력 테스트 문항

1. 스프링 프레임워크로 기본적인 html 화면까지 띄울 수 있다.
2. pom.xml에 라이브러리를 등록할 수 있다.
3. bean을 xml, @(annotation) 방식으로 등록하는 방법을 둘 중 하나 이상 알고 있다.
4. @Autowired가 무엇인지 알고 있다.
5. bean은 싱글톤으로 관리된다는 사실을 알고 있다.
6. DAO가 무엇인지 알고 있다.
7. 스프링 프레임워크와 DB를 연동해본 경험이 있다.
8. thymeleaf, mustache와 같은 템플릿 엔진을 사용해본 경험이 있다.
9. GITHUB의 기본적인 명령어를 알고 있다. clone, add, commit, fetch, push 모두 알고 있으면 아는 것으로 간주
10. 디자인 패턴을 적용하는 것의 장점이 코드의 중복을 줄이고 유지보수 및 협업에 유리하다는 사실을 알고 있었다.
11. RestAPI가 무엇인지 알고 있다.
12. JPA가 무엇인지 알고 있다.
13. MVC에서 M, V, C가 각각 의미하는 바를 알고 있다.
14. SQL의 SELECT, DELETE, INSERT, UPDATE문의 역할을 각각 알고 있다.
15. 별표시 *가 (애스터리스크, asterisk) 모든 글자를 허용한다는 의미라는 사실을 알고 있다.
16. GET 통신과 POST 통신의 차이를 알고 있다.
17. 다음 URI에서 파라미터와 파라미터 값을 식별할 수 있다. (답 4개)
https://translation.googleapis.com/language/translate/v2?key=AIzaSyAJpD7ogqW_dGJ2uhEM8F0Jr-aBdRRAzXw&q=내 이름은 김주역입니다.&source=ko&target=en
18. CSS를 공부해봤다.
19. 백준, 프로그래머즈에서 코딩문제를 1개 이상 풀어본 경험이 있다.
20. 자바에서 interface(인터페이스)를 사용하는 것이 왜 유지보수에 좋은지 이유를 알고 있다.

 

 

2) 실력테스트 결과 취합

- 본격적인 프로젝트 진행 전에 약간의 스터디 기간을 거칠 필요가 있어보임

- 디자인 패턴과 Git에 대한 학습이 추가로 필요해 보임

 

 

 

4. 팀 과제

1) 과제 내용

- 공공 데이터 포탈로부터 샘플 데이터를 불러와서 파싱하는 프로젝트를 실행해보고 분석해서 주어진 문제에 답할 것

- 프로젝트 열기 : 아래 이미지를 보면 프로젝트로 열 수 있는 폴더임을 나타내는 특별한 아이콘이 있는데, 이를 누르고 OK 하면 됨

 

 

2) 질문

- 프로젝트 실행만으로는 알기 어려운 답도 있는데 이 때는 구글링을 해서 파악할 것

 

(1) CovidVaccinationCenter 클래스에 있는 @Setter, @Getter은 pom.xml에 등록되어 있는 어떤 라이브러리에서 제공하는 어노테이션인가? 그리고 @Setter, @Getter의 역할은?

(2) MyRestTemplate 클래스의 역할은 무엇인가?

(3) SampleDataService 클래스의 역할은 무엇인가?

(4) SampleDataService 클래스에서는 어떤 목적으로 MyRestTemplate bean의 getDataGoKrJsonData() 메소드를 사용했는가?

(5) SampleDataService의 getCovidVaccinationCenters() 메소드의 일부 코드다. 2번째 줄에서 JSONObject가 아닌 JSONArray를 사용해야 하는 이유는?

JSONObject covidVaccinationCentersJsonObject = new JSONObject(jsonData); //JSON String -> JSON Object
JSONArray dataJsonArray = (JSONArray) covidVaccinationCentersJsonObject.get("data");

(6) json 데이터에서 배열(리스트)을 알리는 괄호는 중괄호({ })인가? 대괄호{[ ]}인가?

(7) 공공 데이터 포탈 사이트에 HTTP 요청을 GET 타입으로 해야 한다는 안내는 어디에서 확인할 수 있는가?

(8) SpringBoot 프로젝트에서 main() 메소드는 어디에 있는가?

(9) html 파일이 아닌 jsp, mustache, thymeleaf와 같은 웹 템플릿 엔진을 사용하는 장점은?

(10) 다음과 같이 결과를 띄우기 위한 URL은 다음과 같다. 빈칸에 들어갈 알맞은 내용은 무엇인가?

http://localhost:8080(빈칸)

 

 

3) 과제 제출 기한

- 7월 11일 월요일까지 (3일)

 

 

4) 과제에 도움이 될만한 정보

(1) SpringBoot MVC 그리고 mustache 웹 템플릿 사용 방법

https://kimcoder.tistory.com/322

 

[Spring Boot] MVC 패턴

1. MVC 패턴이란? Spring을 이미 배웠다면 MVC 패턴이 무엇인지 알 것이다. 그래도 강의 글이기 때문에 한 번 더 짚고 넘어가고자 한다. MVC는 각각 Model, View, Controller를 나타낸다. 사용자가 웹 애플리

kimcoder.tistory.com

 

(2) 공공 데이터 포털 Open API 사용 예제

https://kimcoder.tistory.com/category/OpenAPI/REST

 

'OpenAPI/REST' 카테고리의 글 목록

개발 및 알고리즘관련 정보

kimcoder.tistory.com

 

(3) UriComponentsBuilder 사용법 및 한글 깨짐 방지 방법

https://kimcoder.tistory.com/463 

 

[Spring] RestTemplate 한글 깨짐 해결방법

RestTemplate에서 UriComponentsBuilder를 이용할 때 한글이 깨져서 전송되는 경우가 있다. 그 이유는 RestTemplate에서는 String 타입에 대해서 내부적으로 StringHttpMessageConverter를 사용하여 데이터를 변..

kimcoder.tistory.com

 

(4) Lombok

https://kimcoder.tistory.com/323

 

[Spring Boot] 예제로 Lombok 쉽게 이해하기

1. Lombok이란? 코드를 간소화 시켜주는 어노테이션들을 제공하는 라이브러리로, Lombok을 적절히 잘 활용하면 개발 시간을 많이 단축시킬 수 있다. 2. 예제 해당 예제는 Spring Boot에서 Gradle 프로젝트

kimcoder.tistory.com

 

반응형

댓글