전체 글

전체 글

    PT 1일차 복습

    처음에 와서 스트레칭 발바닥 뒷꿈치는 땅에, 앞꿈치만 어디 기구 바닥 위에 올려서 종아리를 땡겨주는데 반대 발은 앞으로 굽힌채로 자연스럽게. 15초. 반대쪽도. 다리를 넓게 벌리고 앉아서 허벅지 안 쪽을 풀어줌. 팔은 허벅지 조금 안 쪽 위에. 15초. 레그익스텐딩 기구 밑에 매트 깔고 다리 걸어서 무릎을 매트에. 반대 발은 넓게 앞으로 90도. 팔은 모아서 앞으로 기울여 허벅지 앞 쪽을 펴준다. 15초. 반대쪽도. 다음 기구 운동. 레그 익스텐딩 최소 10kg. 허벅지를 끝까지 조금 붕 뜨게 위로 올려서 허벅지 모든 앞쪽을 쓰게끔. 최소 3세트 15번. 버티컬 스쿼트. 등은 딱 붙이고 시선은 위로. 다리 어깨만큼 벌리고. 최소 3세트 15번. 수직 스쿼트. 누워서 다리 어깨만큼 벌리고 내릴때 무릎 너무..

    스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 - 섹션3. 타임리프 - 스프링 통합과 폼

    기본 메뉴얼과 통합 메뉴얼이 있다고 함. 스프링과 통합하는 기능이 좋아서 이용하는 사람도 많다. https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html Tutorial: Using Thymeleaf 1 Introducing Thymeleaf 1.1 What is Thymeleaf? Thymeleaf is a modern server-side Java template engine for both web and standalone environments, capable of processing HTML, XML, JavaScript, CSS and even plain text. The main goal of Thymeleaf is to provide..

    스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 - 섹션2. 타임리프 - 기본 기능

    타임 리프는 서버사이드 HTML 렌더링(SSR), 내츄럴 템플릿, 스프링 통합 지원이 있음. 이미 vue를 사용할 줄 아니 그냥 이런게 있구나 하고 배우는데 얼마 안걸린다고 하니 필요할 때 공부하자. HTML 뷰 템플릿 위에 선언하면 사용 가능. Tutorial: Using Thymeleaf Tutorial: Using Thymeleaf 1 Introducing Thymeleaf 1.1 What is Thymeleaf? Thymeleaf is a modern server-side Java template engine for both web and standalone environments, capable of processing HTML, XML, JavaScript, CSS and even plain ..

    스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 섹션7. 스프링 MVC - 웹 페이지 만들기

    만들거 일단 핵심 객체 만들고 테스트 만든다. lombok의 @Data를 사용할 경우 Getter, Setter뿐만 아니라 ToString 같은것들도 의도하지 않게 같이 정의되기 때문에 그냥 Getter, Setter로 따로 쓰면서 하는게 좋다. @Repository면 @Component라서 스프링 빈에 등록되는거 css용 bootstrap이랑 예제에서 준 html를 넣자. thymeleaf를 쓰면 html형태 그대로 해서 값을 넣어줄 수 있다. thymeleaf가 서버로 인해 실행중이면 그냥 html은 th를 못 읽으니 무시되서 그냥 있는 기본값이 실행되고, 실행중이면 th로 치환된다. 이렇게 html를 기본으로 사용할 수 있는걸 네츄럴 템플릿이라고 함. 헷갈릴 수 있는데, 클래스의 기본 링크가 /ba..

    스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 섹션6. 스프링 MVC - 기본 기능

    전까지 배웠던 @Controller와 @RestController의 차이는 @Controller는 저 return이 "ok"인 string을 반환하면 저 이름의 뷰 파일을 찾으려고 하는데 @RestController이라면 저 string을 그냥 반환한다. 이 점이 나중에 @ResponseBody와 함께 중요한 역할을 한다고 함. 그냥 url 받는 종류가 뭐 있고 뭐 있고.. 하는 것들이다. 그냥 쭉 보면 이해할 수 있다. 가장 자주 쓰이는 @PathVariable. 이름 같으면 생략 가능 query로 mode가 debug가 아니면 안받아들임 위 query의 header 버전 요청이 application/json이 아니면 안 받아들임 요청하는 클라이언트가 text/html을 못 받아들이면 안 받아들임(클라..

    스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 섹션6. 스프링 MVC - (외전) 로깅 간단히 알아보기

    spring 프로젝트에서 thymeleaf starter를 포함하면 그 안에 logback이라는게 있다. 로그를 다루는 라이브러리는 엄청 많은데, 그 많은 로그 라이브러리를 하나의 인터페이스로 제공하는 것이 SFL4J 라이브러리다. 심지어는 이미 lombok에서도 지원할 정도. 로그는 다음과 같이 사용한다. trace, debug, info, warn, error 5가지 단계가 있는데 뒤로 갈수록 심각한거임. 장점은 단계별로 설정할 수 있고, 어느 단계별로 볼 지는 properties에서 설정할 수 있다. 즉, 자기가 개발용인지 서비스용인지에 따라 똑같은 로그 출력 코드 debug, info가 있으면 디버그는 둘 다 출력되고 서비스용은 info 하나만 출력된다는 것이다. 개꿀이다. 거기다 성능도 이미 내..

    스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 섹션5. 스프링 MVC - 구조 이해

    지금까지 직접 만들었던 프레임워크는 사실 학습을 위해 일부러 스프링 MVC와 비슷하게 만들었다. 진짜 똑같이 생겼다. 여기서 헷갈린건 핸들러 핸들러 하지만 사실 핸들러는 컨트롤러라서 핸들러 어댑터는 컨트롤러를 돌려주는 거라고 보면 된다. 또 Front Controller에 해당하는 DispatcherServlet도 스프링에서 만들어진걸 그대로 사용해서 관련해서 작성한 코드가 없다. 요청이 온 url를 처리할 수 있는 핸들러가 있는지 핸들러 매핑해서 찾는다. 전에 url마다 컨트롤러 등록했던 것 처럼. 스프링에는 이것들이 bean에 등록되있는거에서 찾는다. 우선순위는 요새 대부분 쓰는 @RequestMapping이 붙어있는걸 찾고 다음 순위로 bean의 이름으로 찾는다. 물론 이거 외에도 더 있다. 핸들러..

    스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 섹션4. MVC 프레임워크 만들기

    전에 얘기했던 수문장 어쩌구 하는건 프론트 컨트롤러였다. v1부터 v5까지 단계적으로 계선해 나간다. 강의라서 그런것도 있지만 실제로도 구조를 바꿀 때 하나씩 바꾸고 잘되는지 확인 되었으면 그 다음에 바꾸고 하는걸 추천한다 함. 일단 v1은 이런 구조로 바꾼다. Front Controller를 위 플로우차트처럼 그대로 구현함. 이제 각각의 클래스가 url을 받지 않기 때문에, 각각의 컨트롤러엔 @WebServlet이 없고 프론트 컨트롤러에만 @WebServlet이 붙어있다. Map형태로 찾고 해당 행동을 수행하는 나머지 코드들은 기존의 것을 그대로 가져왔다. v2는 뒤의 forward 부분만 MyView 클래스 만들어서 따로 뺌. 지금 문제는 모델을 아직 안 사용했고, request랑 response가 ..

    스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 섹션3. 서블릿, JSP, MVC 패턴

    이제 서블릿이 HTTP 응답을 알아서 만들어준다는 것을 확인했으니, 서블릿으로 해보고 JSP, MVC로 바꿔가며 왜 MVC를 쓰는지 확인하는 섹션이다. 특이한건 html을 서버쪽에서 직접 주고 있다는 것. Content-Type을 text/html로 했기 때문에 웹 브라우저는 html 그대로 그린다. 거기다 자바로 했기 때문에 안의 내용에 for iterator를 돌린다던가 할 수도 있다. 이런 servlet으로 자바 코드 안에서 html를 짜는건 불편하다. 그래서 jsp를 사용했었던 시기가 있었다. jsp는 html 안에 자바코드를 넣는 방식이다. 맨 위의 줄이 jsp라는 표시이며, 안에는 자바코드 넣고 안에는 출력할 것을 내놓는다. 단점은 뷰를 위한 html안에 자바코드도 들어가며 너무 많은 것이 들..

    스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 섹션2. 서블릿

    앞에서 봤던, 서버가 웹에서 응답을 받을 때 request용 인스턴스, response용 인스턴스를 만들고 응답은 response를 통해 한다는 것이 이 코드 부분이다. 응답코드의 헤더와 body로 저렇게 해주면 알아서 HTTP OK 200 ....을 작성해주는 것. 스프링 안에는 톰캣이 내장되어 있으므로 스프링이 톰캣을 실행하고, 스프링에 servlet 한번 스캔하게 설정했으면 servlet 관련 클래스들을 생성해준다. 그 뒤 활용함. 디버그를 설정하면 어떤 헤더를 만드는지 직접 볼 수도 있다. 물론 크롬에서 개발자모드로도 가능. HTTP 요청, 응답 헤더와 내용을 뜯어볼 수도 있다. servlet의 request에서 get하면서 가져올 수 있다. HTTP에서 서버로 요청하는 방법은 3가지가 있다. G..