
내용 5주차는 주특기 심화주차로 지난주에 했던 스프링 기본과제 CRUD에 이어서 스프링 시큐리티를 사용한 회원가입 로그인을 구현하는 과제를 진행하였다. 시큐리티에 기능을 사용해 로그인과 로그아웃을 구현하였고 세션과/쿠키 기반으로 시큐리티에서 지원하기 때문에 그걸 그대로 사용하였다. 회원가입할때 validation을 확인하는 과정을 백엔드쪽 어노테이션을 활용해 정규식으로 체크해주고 만약 에러가 있을시 bindingResult에 담아서 다시 프론트엔드로 보내주는 과정을 유효성검사를 진행하였다. 스프링 템플릿 엔진 타임리프를 사용하였고 타임리프 문법에 대해서 많이 알게되었다. 그리고 페이징 처리를 위해 JPA에서 지원하는 Pageable을 사용하여 페이징처리와 sort처리를 해줬다. 스프링 시큐리티와 유효성검..

내용 4주차는 주특기주차로 리액트/리액트네이티브/스프링/노드 4개중에 한 개의 주특기를 선택하여 첫 주는 주특기 기본, 두번째 주차는 주특기 심화를 배운다. 나는 주특기로 스프링을 선택하여서 금토일에는 스파르타코딩클럽 웹개발의 봄, Spring 강의를 보았고 월화수목은 과제로 CRUD 게시판 구현하는 과제를 진행하였다. 강의를 볼 때는 Spring이 어떻게 진행되는지 감이 잘 안잡혔는데 월요일부터 직접 구현해보면서 Spring MVC가 어떤식으로 작동하는지 감을 잡게 되었고 팀원들과 모르는 부분을 상의하면서 진행하다보니 잘 진행이 되었던것 같다. 저번주차 까지 힘들었던 알고리즘 주를 끝내고 이제 스프링을 시작하게 되어서 기쁘고 오랜만에 스프링을 다시 보는거라 더욱 열심히 공부해야겠다고 느꼈다. 웹개발의 ..

1. Spring Data JPA ORM이란? Object Relation Mapping으로 객체(클래스)와 관계(관계형 데이터베이스)와의 설정을 의미한다. 객체지향 프로그래밍은 클래스를 사용하고 관계형 데이터베이스는 테이블을 사용한다. 여기서 객체 모델과 관계형 모델간의 불일치가 존재하는데 이 객체간의 관계를 바탕으로 SQL을 자동 생성하여 불일치를 해결하는것이 ORM이다. JPA Java Persistence API로 자바 ORM 기술에 대한 표준 명세이다. 자바 어플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스이다. JPA는 특정 기능을하는 라이브러리가 아니다. JPA는 단순히 명세이기 때문에 구현이 없다. 하이버네이트 (Hibernate) 하이버네이트는 JPA라는 명세의 구현..

1. JUnit을 이용한 단위테스트 단위테스트란? 프로그램을 작은 단위로 쪼개서 각 단위가 정확하게 동작하는지 검사하고 이를 통해 문제 발생 시 정확하게 어느 부분이 잘못되었는지를 재빨리 확인 할 수 있게 해준다. JUnit이란? 자바 프로그래밍 언어용 단위 테스트 프레임워크 이다. TDD (Test-Driven Development)? AS-IS) 설계 -> 개발 -> 테스트 -> 설계수정 TO-BE) 설계 -> 테스트 -> 설계수정 -> 테스트 TO-BE 방법이 테스트 주도 개발 TDD이다. Mockito Mock 객체를 쉽게 만들 수 있는 방법을 제공해준다. 스프링부트 안에 포함되어있다. Mock이란 각 테스트 케이스는 서로 분리되어야 좋기 때문에 가짜 객체 (Mock object)를 생성하는 것이..