본문 바로가기

전체 글

(79)
Vue.js Core Libraries(Vue Router와 Vuex), MD Bootstrap 설치 및 로그인 회원가입 화면 제작 vue 프로젝트 생성은 해당 게시글을 참조하시면 됩니다. 이해가 안 되는 부분들은 공식 사이트를 참조하시면 많은 도움이 될 거 같습니다. Vue Router, Vuex, Axios 설치 Vue Router 싱글 페이지 애플리케이션을 구현할 때 사용하는 라이브러리 Vuex vue.js 애플리케이션을 위한 상태 관리 패턴과 라이브러리 Axios 뷰에서 권고하는 Promise 기반의 HTTP 통신 라이브러리 vue create로 생성한 프로젝트의 package.json을 보면 core-js, vue만 의존성이 추가된 것을 알 수 있다. 화면 제작에 앞서 뷰의 코어 라이브러리인 vue router, vuex와 axios를 설치한다. npm을 통해 설치한 후 package.json을 보면 의존성이 추가된 것을 확..
핸들러 메서드: MultipartFile, ResponseEntity MultipartFile - 파일 업로드 시 사용하는 메서드 아규먼트 - MultipartResolver 빈이 설정되어 있어야 사용할 수 있다. (스프링 부트 자동 설정이 해 줌) MultipartAutoConfiguration을 확인해보면 스프링 부트가 빈으로 등록해준 것을 알 수 있다. 추가 설정을 원한다면 applicaiton.properties에서 spring.servlet.mutipart.~~으로 할 수 있다. 예제 resource -> template -> files에 index.html을 생성한다. 주황 박스 부분은 타임리프 if 문을 이용해 message가 존재하면 message를 보여주는 것이고 빨간 박스 부분이 실제로 파일을 전송하기 위한 form이다. enctype을 multipart..
비트 조작 #1 비트 조작 비트 조작은 다양한 문제에서 활용된다. 비트 조작을 명시적으로 요구하는 문제도 있지만 코드를 최적화할 때 유용하게 사용되는 기법을 활용된다. 비트 조작은 실수하기 쉬우므로 손으로 그릴 수 있도록 익숙해지는 게 좋다 뺄셈은 2의 보수 사용하자 1000 - 0110 = 0010 ==> 1000 + 1010 = 0010 0110 - 0011 = 0011 쉬프트 연산 1101 >> 2 = 0011 ^(XOR), ~(NOT) 1101 ^ (~1101) = 1101 ^ 0010 = 1111 &(AND) 1011 & (~0 > x = 10110101(-75) x >>= 1; 결과: 11011010 (-38) 즉 부호 비트를 바꾸지 않으므로 값이 1/2가 된다. 논리 우측 시프트: >>> x = 101101..
SQL 공부 데이터베이스 공부 SQL 첫걸음 왕초보를 위한 정말 쉬운 SQL 입문서를 만나보자!본격적인 빅데이터 시대에 접어들면서 기존 대비 더 효율적이고 폭넓은 데이터 분석을 위한 수요가 커질 것으로 기대되는 가운데, SQL 활용 범위 역시 더욱 확대될 전망이다. 그 과정에서 취업 준비생이나 일반 직장인을 중심으로 SQL을 처음 공부하려는 이들 역시 증가하고 있다. 이 책은 데이터베이스 관련... www.yes24.com DML(Data Manipulation Language) 데이터베이스에 CURD 하는 것, 데이터를 조작할 때 사용 DDL(Data Definition Language) '데이터 베이스 객체'를 만들거나 삭제하는 명령어 DCL(Data Control Language) 트랜잭션, 접근권한 제어에 관..
핸들러 메서드: RedirectAttributes, FlashAttributes Redirect URI 매개변수 기존 스프링 Web MVC에서는 model에 기본 primitive type 데이터를 넣고 redirect 하게 되면 URI 쿼리 매개변수에 추가된다. 하지만 스프링 부트는 기본 설정이 비활성화되어 있다. application.properties에 위와 같이 ignore-default-model-on-redirect를 false로 두면 URI 쿼리 매개변수에 추가가 된다. ​이렇게 redirect시 모델에 들어간 primitive type의 데이터들이 URI 매개변수에 추가된 것을 알 수 있다. 하지만 이 설정을 켜면 모든 경우에 적용이 되기 때문에 특정 값들만 URI 매개변수에 추가하고 싶으면 RedirectAttribute를 사용하면 된다. RedirectAttribu..
Spring Security OAuth 2.0, Jwt #2(Resource Server) 지난 게시글에서 설정한 Authorization Server에 이어 Resource Server를 설정하는 게시글입니다. 저번 게시글에서 Authorization Server 설정을 통해 JWT 토큰을 발급하였다. 이번엔 Resource Server를 설정할 것이다. GET 요청에 대해서는 모든 사용자를 허가할 것이다. 나머지 요청에 대해서는 인증된 사용자만 허가를 할 것이다. 게시판을 생성하고 조회하는 예제를 통해 Resource Server가 정상적으로 동작하는지 확인한다. Board 엔티티 생성 @NoArgsConstructor(access = AccessLevel.PROTECTED) @Getter @Entity public class Board { @Id @GeneratedValue(strateg..
핸들러 메서드: @SessionAttributes, @SessionAttribute Session은 여러 화면이나 여러 요청에서 사용해야 하는 객체를 공유할 때 사용할 수 있다, HttpSession사용 HttpSession을 사용하여 직접 session을 추가할 수 있다. 테스트를 통해 세션정보를 확인해보면 세션이 정상적으로 저장된 것을 알 수 있다. @SessionAttributes - HttpSession보다 조금 더 추상화된 방법으로 아래와 같이 @SessionAttributes를 사용한다. model.addAttribute의 attributeName이랑 @SessionAttributes의 괄호 안의 값이 같으면 model에 추가될 때 자동으로 세션으로 넣어준다. ​위와 동일한 테스트를 돌려보면 결과가 똑같은 것을 알 수 있다. 세션 처리 이렇게 추가한 세션을 @ModelAttr..
Spring MVC @ModelAttribute, @Valid, @Validated 핸들러 메서드인 @ModelAttribute, @Valid, @Validated에 대해 알아본다. @ModelAttribute URI 패스, 요청 , 세션 등 에 있는 단순 타입 데이터를 복합 타입 객체로 받아오거나 해당 객체를 새로 만들 때 사용할 수 있다. @ModelAttribute를 이용하면 객체로 데이터를 받아올 수 있다. param에 name, limit을 담아 전송한다. @ModelAttribute는 그 값들을 Event 객체에 매핑해준다. name과 limit이 정상적으로 전송되어 Event 객체로 변환된 것을 알 수 있다. param으로만 데이터를 전송했지만 URI 패스, 세션 등에도 똑같이 적용된다. @ModelAttribute 생략 @ModelAttribute는 생략하여도 알아서 변환..