목록일상 (17)
설모의 기록
HTTP 통신과 Spring 에서의 Bean 객체 오늘은 HTTP 통신에서의 쿠키와 세션에 대한 개념과 Spring 에서의 Bean 객체에 대해 공부했습니다. 학교 강의를 통해 배운 내용이라고 생각했었는데 포비의 강의를 들으며 다시 한 번 기억할 수 있었던 하루가 됐습니다. (포비는 항상 절 반성하게 만드는..) 쿠키와 세션(이미지는 포비의 강의 자료에서 가져왔습니다.) 위의 이미지에서 보면 Client 가 Server 에게 요청을 보내고, Server 가 응답을 보낸 후 Client 가 다시 요청을 보내는 과정을 나타낸 그림입니다.첫번째 HTTP 통신 과정을 보면, Client 가 Server 에게 GET 요청을 보냈고 Server는 그에 대한 응답으로 200 응답코드와 session-id 라는 쿠키에..
HTTP통신과 Spring을 이용한 데이터 저장 오늘은 기본적인 HTTP통신이 이루어지는 간략한 과정과 h2database 를 이용해 Spring에서 데이터를 관리하는 방법에 대해 학습했습니다. HTTP통신 브라우저에서 http://hyeooona825.tistory.com/ 를 검색하면 그냥 해당 페이지 하나가 로드되는 것과 같아 보이지만, 실제로는 많은 일이 일어납니다. 위의 그림이 간략하게 나타낸 모습입니다. 1. http://hyeooona825.tistory.com/ 를 입력하면 해당 도메인에 대한 IP주소를 알기 위해 DNS 서버에게 요청합니다. 그림에는 DNS 서버가 한 대이지만, 실제로는 여러 상위 DNS 서버가 있을 수 있습니다. 2. DNS 서버는 요청받은 도메인에 해당하는 IP주소를 ..
TDD 마무리, Spring Boot 의 시작 우아한테크캠프의 첫 주의 마무리로 일주일동안 배운 TDD 방식과 객체지향 프로그래밍에 대한 내용을 정리하고 앞으로 사용해 볼 Spring Boot 의 기초적인 사용법을 살펴보는 시간을 가졌습니다. TDD 방식은 앞서 정리한 포스팅과 같이 테스트 코드를 먼저 작성한 이후에 그 테스트 코드가 제대로 동작하도록 코드를 구현하고 리팩토링하는 방식입니다. 우아한테크캠프에 참여하기 이전에는 테스트 코드를 짜본 적도 없었고, 코드를 빠르게 구현해나가는 것에 초점이 맞춰져 있었습니다. 그래서 제 코딩습관을 고치는 것이 어색하고 힘들었습니다. 그런데 오늘 강의해주신 pobi의 의견이 와닿았습니다.TDD 방식의 연습은 실제 프로젝트가 아니라 자신의 장난감 프로젝트에서 시작하라..
객체지향 프로그래밍 기반으로 TDD 수행하기 오늘은 어제의 내용과 객체지향 생활체조 원칙을 바탕으로 코드를 구현하는 연습을 배웠습니다. 객체지향 생활체조 원칙은 극단적이라고 느낄 수 있지만 객체지향적으로 프로그래밍하기 위해 익혀야하는 원칙입니다. 그 내용은 아래와 같습니다.하나의 메소드에는 오직 한 단계의 들여쓰기만 한다.else 예약어를 쓰지 않는다.모든 원시값(primitive type) 과 문자열을 포장한다.한 줄에 점을 하나만 찍는다.줄여쓰지 않는다. // 축약 금지모든 엔티티를 작게 유지한다.3개 이상의 인스턴스 변수를 가진 클래스를 쓰지 않는다.일급 콜렉션을 쓴다.getter / settert / property를 쓰지 않는다. TDD 방식을 구현하며 주의해야 할 사항위의 객체지향 생활체조 원..
TDD (Test Driven Development) ? 개발을 생각의 흐름대로 진행하다보면, 중간의 결과값을 알아보고 싶지만 그 값을 알기 위해서 해야 할 작업들이 너무 많아 포기할 때가 종종 있었을 것입니다. DB 조회 코드만 생각해도 데이터베이스에 해당 데이터가 있는지만 조회하려 해도 데이터베이스 환경을 세팅하는 코드를 실행하고, connection 을 연결하는 코드를 실행해야 비로소 데이터를 조회할 수 있습니다. 이럴 때 유용한 것이 단위 테스트입니다. 그리고 단위 테스트를 언제 작성하고 수행해야 하는지를 나타내는 방식이 TDD입니다. TDD 방식을 이용하지 않으면 일반적으로 테스트 코드를 작성하기 어렵도록 코드를 구현합니다. 그렇다보니 테스트 코드를 작성하기 어려워 '하지말자!' 또는 '다음 로..
Code Convention? 개발자라면 어느 언어를 사용하느냐에 관계없이 코드 컨벤션의 중요성을 알 것입니다. 코드 스타일이 다른 사람들과 협업을 하다보면 코드를 구현하는 시간보다 동료의 코드를 이해하는 시간이 더 오래 걸립니다. for문의 body를 감싸는 괄호를 한 줄 띄우냐, 안 띄우냐로도 신경쓰이기 때문이죠. 코드 컨벤션은 기본적으로 언어마다 지켜야 할 규칙이 있지만 그 이외의 부분에서는 팀원들과 상의하여 규칙을 모두 정해야 합니다. 코드 컨벤션 규칙을 정하고 협업을 시작하면 코드를 읽는데에도, 유지보수하는데에도 상대적으로 적은 시간이 걸립니다. 오늘 제가 우아한테크캠프에서 배운 간단한 코드 컨벤션은 아래와 같습니다. 1. 클래스 명은 대문자로, 메소드 명은 소문자로 시작하기public clas..
오늘은 2018년도 1월 1일이다. 한번쯤 한 해가 끝났을 때 정리를 해보고 싶었는데 이번 기회에 도전해보려고 한다. 2017년도 한해는 고3 때 보다도 더 우울해하고 걱정이 많았던 한 해였다. 친하던 사람들이 친했던 사람들이 되고, 뒤에서 속닥거리는 이야기들에 의해 완성되는게 사람들 인식속의 나라는 것에 대해 실망하기도 하며, 인간관계에 회의감을 느끼던 순간들이 많았다. 이것과는 별개로 대학교에 입학한 후 어느 때보다 전공에 관련된 심화된 경험들을 많이 할 수 있었던 한 해였다. 아래의 글에 2017년도를 정리해보았다. 대학생 연합 IT 창업 동아리 'SOPT'2016년 3월부터 IT 창업 동아리인 SOPT 활동을 시작했다. SOPT 는 대학생 연합 동아리로 기획, 디자인, 개발(안드로이드, IOS, ..