전체 글 439

블로그-V3. 프로젝트 외부 파일 경로 지정

썸네일을 글 목록에 불러오기 위해 경로를 지정해주는데 우리는 파일을 프로젝트 외부의 C드라이브에 저장해두었다. 외부 파일에 접근할 수 없기 때문에 설정 파일에서 설정을 해주어야 한다. 이 파일에 WebMvcConfigurer을 implements 받아준다. 이 파일이 web.xml 설정 파일과 같은 것이다. 메모리에 띄우기 위해 @Configuration을 달아준다. package site.metacoding.blogv3.config; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import or..

Spring/Tistory 2022.04.27

블로그-V3. 썸네일 파일 업로드

파일 업로드 시 yml 파일 설정 dev파일에 저장 경로를 설정해줘야 한다. 사진 저장을 내 프로젝트 내부가 아닌 외부에 저장하겠다고 알려주는 것이다. C 드라이브로 경로를 지정하면 그 경로에 파일을 쓸 수 있는지 권한이 필요하다. 윈도우 폴더에 파일 쓰기 거부당한다면 아래 링크를 참고하자. https://blog.daum.net/khkim6001/649 [서대문구 홍은동,홍제동,영천동,천연동 컴퓨터수리,노트북수리] 관리자 권한이 필요합니다 라 요즘 메이커 컴퓨터는 대부분 윈도우8 이나 윈도우8.1이 설치되어 출시가 됩니다. 윈도우7 다음버전으로 나온것이 윈도우8이고 윈도우8이 사용상 불편해서 보완해서 나온것이 윈도우8.1입니다. blog.daum.net C:\Users\green\upload 해당 경로..

Spring/Tistory 2022.04.27

블로그-V3. 글쓰기 화면(Quill, 카테고리, 파일 업로드)

글쓰기 버튼 만들어주고 글쓰기 화면 만들건데 퀼 에디터 써보자. https://quilljs.com/ Quill - Your powerful rich text editor Sailec Light Sofia Pro Slabo 27px Roboto Slab Inconsolata Ubuntu Mono Quill Rich Text Editor Quill is a free, open source WYSIWYG editor built for the modern web. With its modular architecture and expressive API, it is completely customizable to fit any ne quilljs.com 글쓰기 화면에서는 드로우바가 필요 없으니까 main-head..

Spring/Tistory 2022.04.27

블로그-V3. 사용자별 카테고리 생성

1. 카테고리 등록 카테고리 등록 버튼을 누르면 어디로 페이지를 넘겨줘야 할까? 카테고리를 여러개 만들 수도 있으니까 /s/category/writeForm으로 리다이렉트 해주면 되겠다. 근데 그냥 페이지를 넘겨주기만 하면 카테고리가 잘 등록되었는지 알 수 없으니까 자바스크립트를 리턴해주면 좋겠다. @PostMapping("/s/category") public @ResponseBody String write() { return Script.href("/s/category/writeForm", "카테고리 등록 완료"); } 자바스크립트 locatino.href 로 페이지를 이동시켜주거나 history.back 같이 뒤로 가기 해주는 코드는 자주 사용되므로 util 폴더에 메서드로 만들어주자. 파일만 돌려주..

Spring/Tistory 2022.04.26

블로그-V3. successHandler

스프링 부트 시큐리티는 localhost:8080/logout이 자동 로그아웃 주소이다. successHandler 시큐리티가 로그인에 성공했을 때 무조건 타게 하는 핸들러이다. 이전에는 defaultSuccessUrl("/")을 사용하여 메인 페이지로 가게 했는데 핸들러를 만들어 해당 유저의 블로그로 넘어가도록 해줄 것이다. successHandler를 사용하려면 인수로 AuthenticationSuccessHandler( ) 타입을 넣어줘야 하는 강제성을 부여한다. AuthenticationSuccessHandler가 인터페이스이기 때문에 바로 new 해줄 수 없다. 바로 익명 클래스를 넣어줘도 되긴 하는데 코드가 지저분해지기 때문에 AuthenticationSuccessHandler( ) 타입을 i..

Spring/Tistory 2022.04.26

몽고DB 1강. 설치

https://www.mongodb.com/try/download/community MongoDB Community Download Download the Community version of MongoDB's non-relational database server from MongoDB's download center. www.mongodb.com 설치끝! [출처] https://cafe.naver.com/metacoding 메타코딩 : 네이버 카페 코린이들의 궁금증 cafe.naver.com 메타 코딩 유튜브 https://www.youtube.com/c/%EB%A9%94%ED%83%80%EC%BD%94%EB%94%A9 메타코딩 문의사항 : getinthere@naver.com 인스타그램 : http..

DB/MongoDB 2022.04.26

파이썬 2강. tuple 사용하는 이유

tuple 타입은 상수, const, 읽기 전용 데이터이다. tuple = (1, 2, 3, 4) 이 타입은 왜 사용할까? 원본 데이터를 수정해야 할 때 데이터가 수정되었는지 알기 위해서는 원본 데이터를 복제해두었다가 값을 하나하나 비교해야 한다. 데이터가 만들어진 그 시점에 복제해두어야 하는 것이다. 원본이 변경된 것을 확인할 때 어떻게 비교하느냐? 같은 자리에 있는 것끼리 하나하나 비교하면 된다. 이때 단점이 있다. 모든 번지수를 다 확인해야 한다. 데이터의 개수가 10억 개라고 한다면 변경되었는지 확인하고 싶을 때마다 10억 개를 비교해야 하는 것이다. 비효율적이다. 기존에 원본을 수정하는 방식을 바꾸어 수정이 일어날 때마다 새로운 오브젝트를 만들어낸다. 만약 원본 데이터가 1000번지에 저장되어있..

Python 2022.04.26

파이썬 1강. 설치

https://www.python.org/downloads/ Download Python The official home of the Python Programming Language www.python.org 파이썬은 버전이 2.*와 3.*에 문법이 다르다. 주의해서 다운받자. 체크를 해줘야 환경변수를 자동으로 잡아준다 인스톨 나우 설치하면 IDLE라는 툴을 제공해주는데 우리는 vscode를 쓸 것이다. 맛은볼까? 타입도 없고 세미콜론도 없다. 이런 언어를 인터프리터 언어라고 한다. 한줄입력하고 한줄 실행하고! 세미콜론이 없어서 줄바꿈이 중요하다. 그래서 코드를 적는 순서가 중요하다. 이렇게하면 a 메서드가 실행되지 않는다. a(); function a () { } vscode에서 파이썬을 사용하기 위..

Python 2022.04.26

[프로젝트] 팀원과 다른 DB 사용할 때 체크해야 할 코드

build.gradle mariaDB dependencies { implementation 'org.springframework.boot:spring-boot-starter-mail' implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-mustache' implementation 'org.springframework.boot:spring-boot-starter-validation' implementation 'org.springframework.boot:spring-boot-starter-web' compileOnly 'o..

[프로젝트] 자바 오브젝트 json으로 변환 후 자바스크립트 오브젝트에 파싱

자바에서 오브젝트를 리스트 타입으로 만들어 모델에 담아 mustache로 가지고 가려고했다. // 유저가 가진 시간표 목록 담기 List timetables = timetableService.시간표불러오기(id); model.addAttribute("timetables", timetables); 머스태치에서 모델값을 찾아 자바스크립트로 제어해서 그림을 그려야하는데 자바스크립트에서 {{timetables}}는 리스트 타입이 아닌 String 타입으로 인식한다. . . . 각자 오브젝트의 생긴 모양새가 다르기때문에 바로 자바스크립트 오브젝트로 바꿀 수 없다. Json으로 바꿔서 던져주자. ObjectMapper를 사용하면 된다. writeValueAsString( )이 자바 오브젝트를 json으로 바꿔주는 ..

Spring/Tistory 2022.04.21