728x90
반응형

전체 글 271

docker로 mysql 컨테이너 사용하기

문제상황 잘 쓰던 mysql이 갑자기 사망했다. 아무리 구글링을 해도 내 실력으로는 수습이 불가능하다. 그래서 아예 삭제하고 새로 설치하려고 했는데, 웬걸 삭제조차 안된다... 그래서 GCP 인스턴스를 새로 파는 김에, 이번에는 mysql을 apt로 인스톨하지 않고 도커 컨테이너로 사용해보기로 했다. 여차하면 날리고 새로 깔기 쉽게...^^! 도커 설치 curl -fsSL https://get.docker.com/ | sudo sh 제대로 설치되었는지 확인하려면 docker version을 쳐보자. mysql 컨테이너 생성 sudo docker run --name mysql -e MYSQL_ROOT_PASSWORD=(패스워드) -d -p 3306:3306 -v /var/lib/mysql:/var/lib/..

IT/서버 2019.10.02

jpa 페이지네이션 메서드

UserService.java jpa 내장메서드이므로 userRepository에서 따로 정의해줄 필요는 없다. 원래 형태는 findAll(Pageable)로, pageable 형을 넣어줘야 하는데 PageRequest.of()를 이용해 pageable 타입을 만들어준다. UserController.java 현재 페이지와 페이지당 몇개씩 볼 지만 파라메터로 받아서 뷰로 보내주면 된다. userListpg.html findAll(pageable)의 결과물은 위와 같다. 컨트롤러에서 결과물을 "users"로 보내줬으므로 첫 번째 레코드의 유저 이름을 보여주려면 뷰에서 ${users.content.get(0).name} 로 찍어주면 된다.

spring에서 json api 만들기

pom.xml jackson 라이브러리 디펜던시 추가하고 메이븐 업데이트를 해준다. 버전은 아래를 참고하여 최신 것으로 설정 https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind/2.9.8 Entity 클래스 위에 @JsonIdentityInfo 어노테이션 추가 안그러면 chunked 에러가 발생한다... Controller @ResponseBody 어노테이션을 추가해준다. 이게 없으니 404 에러가 떴다. 자료형은 Object로 설정해준다. 브라우저 설정한 경로로 접속하면 이렇게 데이터가 json 형태로 뿌려진 것을 볼 수 있다.

Vanilla JS

Vanilla JS 바닐라 자바스크립트는 프레임워크나 라이브러리를 사용하지 않는 순수한 자바스크립트를 말한다. 공식 사이트에서 바닐라js 파일을 다운받으면 크기가 0이다. 바닐라 자바스크립트를 사용하기 위해서는 다른 무언가가 필요없다는 뜻이라고... 학습단계에서는 jQuery 등의 라이브러리 사용법을 먼저 공부하기보다는 바닐라 자바스크립트를 공부하면서 웹과 js에 대한 이해를 쌓는 게 좋다고 한다. http://vanilla-js.com/

스프링 한글 파라메터값 GET방식으로 넘기기

영어 파라메터는 잘 넘어가는데 한글 파라메터만 넘기면 url에서부터 깨져있는 현상.. server.xml 수정 get 방식은 url에 데이터를 넣어 보내는 방식이기 때문에 서블릿 영역 안에서 컨트롤되지 않는다고 한다. 때문에 프로젝트 파일이 아닌 서버 파일을 수정해야 한다. 이클립스 내 서버 폴더 아래 server.xml 파일을 수정한다. 이 부분을 찾아서 끝에 URIEncoding="UTF-8" 추가 이부분도 찾아서 마찬가지로 끝에 URIEncoding="UTF-8" 추가 뷰 파일 수정 원래 내 프로젝트는 이렇게 되어있었는데 저 부분은 없애도 된다. 그리고 인코딩 설정이 UC-KR로 설정되어 있는 것을 UTF-8로 다 바꿔준다. 이렇게 수정하고 나면 한글이 깨지지 않고 잘 넘어간다.

ORM, JPA, Hibernate

ORM(Object Relation Mapping) ORM은 도메인 오브젝트와 db를 연동하는 기술이다. 객체지향 언어인 자바와 관계형 DB의 테이블을 매핑해주는 것이다. JPA : Java Persistance API JPA는 JAVA에서 제공하는 ORM API이다. Hibernate ORM은 기본 개념이고, JPA는 ORM을 구현한 것이다. 그런 JPA를 다시 구현한 프레임워크가 하이버네이트이다. 기존 MVC 모델에서, Domain에 게터세터를 설정해두고 DAO 클래스에 CRUD에 해당하는 쿼리를 모두 써놓고 불러서 사용했던것과 달리 ORM을 이용하면 어노테이션으로 Domain을 설정하고, 쿼리문 대신 JAP에 준비된 메소드를 이용하여 데이터를 처리할 수 있다. 반복적인 쿼리문의 작성, 잦은 DB와의..

플랫폼, 프레임워크, 라이브러리, api

platform : 승강장. 모이는 곳 1. 구글이 마켓플랫폼 장악했다 : 구글이 앱을 올리는게 아니라 사용자들이 올리는것 2. 개발할때 플랫폼이다 : 여러 사람들이 이 도구를 이용해서 새로운 것들을 만들어낼수 있는것 여기에 어떤 어플리케이션이 있어서 사용자들이 쓸 수 있음 ex) 안드로이드 위에 앱들이 올라가는것 framework : 뼈대. 틀만 주어짐. 이 안에 구현체는 사용자가 만드는 것. 플랫폼이면서 프레임워크인 경우가 대단히 많음. 정확히 구분 어려움 library : 코드의 모음. 코드를 모아놓으면 다 라이브러리라고 함 코드 정리도 잘 안돼있고 사용자가 쓰기에 설명이 부족하다? 그러면 api라고 부르기 어려움 api : 인터페이스의 성격에 더 가까움. ap"I". 사용자가 잘 쓰기 편하게 인터..

카테고리 없음 2019.08.14

ajax 크로스 도메인 허용하기 (헤더 설정)

db에서 데이터를 가져와 json으로 뿌려주는 파일이다. 밑줄친 response.setHeader("Access-Control-Allow-Origin","*"); 부분을 코드 상단에 써주면 크로스도메인을 허용한다는 내용이 된다. 물론 내 서버 파일이니까 가능했지, 남이 만들어서 뿌려주는 파일을 쓰려먼 못하는 방법이다... 그래서 이 글에서는 못 했었다. 2019/08/08 - [웹프로그래밍] - ajax 사용하여 비동기 데이터 받아오기

300x250
반응형