본문 바로가기

전체 글

(74)
[TIL] 나의 서른 두번째 회고록 게시판 만들기 과제에서 지금은 댓글까지 기능을 추가해서 구현하고있다. 머리속에 객체 지향만 가득해서 그런지 어떤 범위까지 객체지향적으로 코드를 작성해야하는 건지 고민이 된다. 객체지향적이라는 것이 하나의 기능의 주체가 되는 요소라고 생각하면 쉬울 것 같았지만 기능의 주체가 되는 요소를 MVC패턴으로 어느 범위까지 허용이 되는 것인지가 감이 안잡히는 것 같다. 객체 지향 이외에도 코드 간의 결합도는 낮춰서 응집도는 높여서 코드를 작성해야 하기 때문에 정확하게 내가 지금 하고 있는 것이 맞는지 의문이 든다 그래도 코드를 쭉 작성해보고 스스로 어떤 점이 부족한지 TIL작성하면서라도 리뷰를 해봐야겠다.
[WIL] WIL 여섯번째 회고록 이번주는 게시판 과제를 JWT를 사용해서 회원가입/로그인 기능을 구현시키는 과제를 진행했다. 기존에 Session과 Cookie 개념만 알고있었는데 JWT는 처음 접해보는 거라 이해하는데 시간이 좀 걸렸다. 강사님의 코드를 보고 따라치는 것이 아니라 Zero에서부터 스스로 코드를 작성하기 위해서는 배웠던 기능들을 반복적으로 보면서 충분한 이해가 필요하다고 느꼈다. 이 모든 것을 수월하게 진행하기 위해서 강의 들은 것들을 잘 정리하고 복습하는 것만이 방법이라고 생각한다. 이번 게시판 과제를 구현하면서 내가 놓치는 부분이 있다는 것을 깨달았다. 저번에 메모장 과제를 구현하면서도 튜터님께서 '객체지향적'인 코드를 강조하셨는데 과제 제출한 내 코드를 보니 객체 지향적이지 않았구나를 깨달았다. 시간이 지날 수록 ..
[TIL] 나의 서른 한번째 회고록 보통 서버가 클라이언트 인증을 확인하는 방식은 대표적으로 쿠키, 세션, 토큰 3가지 방식이 있다. 예전에 배웠을 때는 쿠키, 세션 이렇게 두가지 개념만 기본으로 사용해보고 지나갔던 경험이 있다. 개인과제를 하면서 JWT를 처음 접해보았다. JWT?는 뭐지? 처음들어봐서 정확하게 JWT란 무엇일까? 궁금해졌다. JWT 란? JWT(JSON Web Token)란 인증에 필요한 정보들을 암호화시킨 JSON 토큰을 의미한다. 그리고 JWT 기반 인증은 JWT 토큰(Access Token)을 HTTP 헤더에 실어 서버가 클라이언트를 식별하는 방식이다 JWT는 JSON 데이터를 Base64 URL-safe Encode 를 통해 인코딩하여 직렬화한 것이며, 토큰 내부에는 위변조 방지를 위해 개인키를 통한 전자서명도 ..
[TIL] 나의 서른번째 회고록 이번에 게시판 과제를 upgrade하고 있는데 이 과정 속에서 PostMan이라는 프로그램을 처음 접해봤다. 이 포스트맨을 처음에 사용할 때 어떻게 하는거지? 이리저리 눌러보고 만져보고 했는데 입문자인 나에게는 생각보다 프로그램을 다루기가 어려웠던 것 같다. 그래서 유튜브강의도 들어보고 다른 팀원들한테도 물어보면서 사용법을 익혔다. @ 참고 : https://chunggaeguri.tistory.com/entry/%ED%8F%AC%EC%8A%A4%ED%8A%B8%EB%A7%A8-POSTMAN-%EC%82%AC%EC%9A%A9%EB%B2%95 [POSTMAN] 포스트맨 (POSTMAN) 사용법 포스트맨(POSTMAN) REST API 설계 개발, 테스팅을 할 수 있는 GUI 툴로 개발 생산성을 높여주는 프..
[TIL] 나의 스물아홉번째 회고록 JPA심화 📚JPA란? JPA란(Java Persisitence API) 어플리케이션과 JDBC 사이에서 동작하는 API *JPA 개념에서 빠지지 않는'ORM (Object Relational Mapping)' 기술을 사용한다 ORM은 객체와 테이블을 매핑해주는 역할을 함. - 왜 JPA를 사용해야 하는지? 1) 생산성 : JPA를 자바 컬렉션에 객체를 저장하듯 JPA에게 저장할 객체를 전달. INSERT SQL을 작성하고 JDBC API 사용하는 지루하고 반복적인 일을 JPA가 대신 처리해준다. CREATE TABLE같은 DDL문 자동 생성 데이터베이스 설계 중심의 패러다임을 객체 설계 중심으로 역전 2) 유지보수 : 엔티티에 필드 추가시 등록, 수정, 조회 관련 코드 모두 변경 JPA를 사용하면 이런..
[TIL] 나의 스물 여덟번째 회고록 error message : Required request parameter 'id' for method parameter type Long is not present 게시판 비밀번호 체크기능을 구현하다가 위의 에러가 발생하였다. 파라미터도 넘긴 id값이 Controller로 넘어가지 않는다는? 아니면 null값이라는? 말 같다. form태그에서 submit을 통해 파라미터 id값을 넘기는데 넘어가지 않는 듯 하다. 에러 관련 정리할 내용 HTML에서 form태그를 통해 method가 POST로 전송이 되었고 따라서 @RequestParam으로 값을 받을 수 있다 GET 메서드, @GetMapping을 통해 localhost:8080?userId=1234&name=username 과 같은 형태로 전송되어..
[TIL] 나의 스물 일곱번째 회고록 오늘은 게시판 프로젝트를 수정해보면서 Tymeleaf를 처음 접하게되었다. 현재 타임리프를 사용하여 form태그로 비밀번호 일치 확인하는 로직을 작성하고 있는데 생각보다 쉽지 않아서 골머리를 싸고있다. 그래도 Thymeleaf를 사용함으로서 코드가 확실히 줄어들고 한눈에 알아보기 쉬워서 유용하게 쓸 것 같다. Thymeleaf란? '템플릿 엔진'의 일종. html 태그에 속성을 추가해 페이지에 동적으로 값을 추가하거나 처리할 수 있다. Thymeleaf 문법 대부분의 html 속성을 th:xxx 로 변경할 수 있다. ex: th:text="${변수명}" 표현 설명 예제 @{ ... } URL 링크 표현식 th:href="@{/css/bootstrap.min.css}" th:href="@{/{itemId}..
[WIL] WIL 다섯번째 회고록 이번주에는 알고리즘 + Spring Boot를 활용하여 게시판을 만들어보는 작업을 했다. 게사판을 만들어보면서 가장 인상 깊었던 것이 JPA로 DB접근이 굉장히 수월해졌다는 것이 놀라웠다. JPA란? JPA는 자바 진영에서 ORM기술 표준으로 사용되는 인터페이스의 모음이라고 한다. 그렇다면 ORM은 무엇인지 궁금해졌다. ORM(Object-Relational Mapping) 우리가 일반 적으로 알고 있는 애플리케이션 Class와 RDB(Relational DataBase)의 테이블을 매핑(연결)한다는 뜻이며, 기술적으로는 어플리케이션의 객체를 RDB 테이블에 자동으로 영속화 해주는 것이라고 보면된다. 왜 JPA를 사용해야 할까? JPA는 반복적인 CRUD SQL을 처리해준다. JPA는 매핑된 관계를 이용..