코드 작성시 큰 문제없이 잘 작성이 잘된거 같아서 실행에 문제는 없었는데 Postman 으로 적용시 쿼리문이 나가지만 실질적인 데이터베이스에는 적용이 안되어서 찾아보니 @Transactional이 안적혀 있거나 혹은 Postman에서 / 하나가 더적혀 있는 등 미세한 문제점을 찾아내는데 시간을 많이 사용하게 되어서 어려웠다.
새로 알게된점
브라우저의 작동방식에 대해서 설명해주세요.
정의 : URL을 입력하면 웹 서버라 불리는 프로그램이 웹 브라우저에 웹 페이지를 제공
작동방식
사용자가 URL을 입력하면 브라우저는 웹 서버에 HTTP 요청을 보내고 데이터를 수신한다.
받은 HTML과 CSS는 파싱되어 DOM과 CSSOM 트리를 생성하며, 이들은 렌더 트리로 병합된다.
렌더 트리를 기반으로 레이아웃 단계에서 각 요소의 크기와 위치를 계산한다.
계산된 정보로 화면에 페이지를 그리는 페인팅 단계가 이루어진다.
필요한 JavaScript가 실행되고 모든 요소가 로드되면 페이지가 완성되어 사용자와 상호 작용한다.
쿠키, 세션의 개념과 차이를 설명해보세요
쿠키 : HTTP의 일종으로 사용자가 웹 사이트를 방문할 경우 사용되는 사용자의 컴퓨터에 저장하는 작은 기록 정보 파일
세션 : 방문자가 웹 서버에 접속한 시점부터 웹 브라우저를 종료하여 연결을 끝내는 시점, 즉 서버에 접속해 있는 상태
차이점
사용자의 정보가 저장되는 위치이며, 쿠키는 서버의 자원을 전혀 사용하지 않지만 세션은 서버의 자원을 사용
쿠키는 만료기간이 파일로 저장되어 브라우저를 종료해도 정보가 유지되지만, 세션은 브라우저가 종료되면 만료시간에 상관없이 삭제됨으로 라이프 사이클에 큰 차이점을 가지고 있다.
이러한 특성으로 보안 측면에서 세션이 더 우수하나 요청속도는 쿠키가 더 빠르다.
쿠키 사용이유세션은 서버의 자원을 사용하기 때문에 무분별하게 만들다보면 서버의 메모리가 감당할 수 없어질 수가 있고 속도가 느려질 수 있기 때문에 쿠키가 유리한 경우가 있다
오늘의 느낀점
코드 작성시 중간 테이블에서 값을 찾기위하여 repository에서 메서드를 설정하는게 어려워서 작성에 많은 어려움을 가지다 보니 팀원의 도움으로 추천 메서드가 아닌 @Quary 어노테이션을 통해서 jpa에 있는 데이터를 직접적으로 적용하는 방식을 사용했다.
처음 사용할 시에는 오히려 낮설었지만 오히려 기존 repository에서 추천으로 작성하는것보다 좀더 상세하게 자료를 가져올수 있다보니 편리함을 느꼈다.
좀더 연습해서 익숙해지면 앞으로 매개변수의 값을 찾는데는 문제없이 코드 작성이 가능 할것이라고 생각된다.
코드 작성시 큰 문제없이 잘 작성이 잘된거 같아서 실행에 문제는 없었는데 Postman 으로 적용시 쿼리문이 나가지만 실질적인 데이터베이스에는 적용이 안되어서 찾아보니 @Transactional이 안적혀 있거나 혹은 Postman에서 / 하나가 더적혀 있는 등 미세한 문제점을 찾아내는데 시간을 많이 사용하게 되어서 어려웠다.
새로 알게된점
HTTP 메서드
주요 메서드
GET : 리소스 조회 (서버에 전달하고 싶은 데이터는 query을 통해서 전달)
POST : 등록, 요청 데이터 처리 (데이터 전송시 Body에 담아 전송하므로 메시지 길이 제한이 없음)
- 추가 HTTP헤더를 사용하여, 한 출처에서 실행 중인 웹 애플리케이션이 다른 출처의 선택한 자원에 접근할 수 있는 권한을부여하도록 브라우저에 알려주는 체제
CORS 필요 이유
- CORS가 없이 모든 곳에서 데이터를 요청할 수 있게 된다면, 다른 사이트에서 원래 사이트를 흉내낼 수 있게 된다. 이를 통해 로그인했던 세션 또는 토큰을 탈취하여 정보를 꺼내는 등 해킹이 가능해지므로 브라우저를 보호하고 필요한 경우에만 서버를 요청하기위하여 필요하다.
SOP(동일 출처 정책)
같은 출처에서만 리소스를 공유할 수 있다는 규칙을 가진 정책
다른 출처로부터 조회된 자원들의 읽기 접근을 막아 다른 출처 공격을 예방
오늘의 느낀점
코드 작성시 어렵게 느껴지는 부분은 작성후 확인했을때 오류를 찾아내는 점이 제일어렵게 느껴진다.
다만 코드 자체에서 문제일시 오류부분을 보면 찾는데 큰 어려움없이 문제 부분을 찾아서 해결책을 구상하지만 코드상 문제가 없다고 생각했는데 내가 원하는 값이 나오지 않아서 이에 문제점을 찾는 과정이 제일어렵다.
대부분 이럴경우 내가 철자를 잘못 입력하거나 미세한 실수로 일어나다 보니 더욱 찾기 어렵게 느껴지는거 같다.
충분한 의사소통과 빠른 의사결정으로, 기획부터 개발까지 문제 되는 부분 없이 매끄럽게 진행됐습니다. 각자 하기로 한 부분은 어떻게든 끝내는 모습이 인상 깊었습니다. 결과도 좋고 팀웍도 좋았어서 깔끔하게 마무리해서 너~~~무 좋았습니다
김종규
원활한 의사소통과 문제 발견 시 공유해서 해결하는 부분이 팀의 긍정적인 시너지를 많이 느끼게 되었습니다. 이번 프로젝트 수고많으셨고, 최종 프로젝트까지 다들 화이팅하시길 기원합니다.
김대영
젭 뿐만아닌 부재시 슬랙을 이용하여 빠른 정보전달을 통해서 빠른 문제 해결, 코드 작성으로 프로젝트 작업간 효율성을 극대화하여 높은 완성도를 이루었던거 같습니다. 또 이번 프로젝트에서도 새로운 기능과 프로그램에대해 알고 배울수 있어서 좋은 경험이 되었습니다.
김혜윤
역대 원할한 소통이 가장 잘 된 팀으로 문제 해결 및 개발 진행에서 집단 지성을 잘 사용한 것 같습니다. 피드백을 통해 트러블 슈팅 작성 시, 문제 상황을 더 자세하게 작성 해야겠습니다. 순서 변경 로직을 프론트 없이 백엔드에서 좀 더 효율성(?)있게 구현 할 수 있는 방법을 찾아보는 것이 숙제…! 다들 수고하셨습니다.!
프로젝트의 각자 작성해야하는 코드에 대해 팀원들과 토의를 진행하였는데 API 세분화를 위하여 크게 도메인, 글로벌 2가지 형태로 패키지를 나눈후 도메인안에는 각자 맡아서 작성해야하는 API에대해서 Controller - Service - Repository - Dto - Entity 형태로 패키지를 정리하고, 글로벌 패키지쪽에는 로그인 및 JWT,Config, CommonResponse에 관한 내용으로 구분하여 정리하니 확실히 각 클래쓰에 대한 파일 정리와 구분이 명확해 졌다.
앞으로도 프로젝트 작성시 이러한 형태를 먼저 구상후 시행하면 좀더 빠르고 수월하게 프로젝트를 만들수 있을거 같다.