그냥... 제가 자주 사용하고 필요한 docker 명령어들을 차곡차곡 모아놓기 위해 글을 작성합니다. 참고로 CentOS7 기준 Docker 시작 관련 명령어 Docker 엔진 실행 명령어 리눅스 부팅시 마다 Docker 자동 실행 root 계정말고 다른 계정에서 sudo 명령어 사용하지 않고 사용 Docker 삭제 관련 컨테이너 전체 삭제 이미지...
VScode 에디트 편집기를 이용해서 React를 개발하고 있었습니다. emmet에 익숙한 저는... jsx 작성할 때, 단축키가 안먹히는 것이 불편하여, jsx 작성 시, emmet을 활성화 하는 방법에 대해 찾아보게 되었습니다다. 파일 > 기본 설정 > 설정 Window 이용자 : Ctrl + , Mac 이용자 : Command + , 작업영역(W...
React를 쓰지만, 항상 Life Cycle을 제대로 이해못해서... 정리할 겸 포스팅하게 됐습니다! 이 글은 React Components의 Life Cycle을 제대로 이해하는 것을 목표로 합니다! 1. React Life 개요 일단 리액트의 라이프 사이클은 세가지 개념으로 동작합니다. 마운트, 업데이트, 언마운트 3가지 개념만 잘 이해하고 있으...
들어가기 앞서 velopert님의 책 리액트를 다루는 기술을 정독하고 기본 예제를 쳐봤지만, 저의 기억력은.....금붕어라 금방 까먹더라구요. 그래서 책 마지막에 나오는 블로그 만들기 실습 예제를 다운로드하고, 프로젝트 구조를 파악하는 것을 이 포스팅의 목적으로 합니다. 구조를 파악하고 난 뒤에는 기능 단위로 저만의 간단한 실습을 정하고 진행할 예정입니...
스프링 시큐리티에 대해 간단하게 개념 정리를 하고 단순 시큐리티를 적용해봅니다. 스프링 시큐리티 대략적인 기능 사용자 권한에 따른 URI 접근 제어 DB와 연동 하는 Local strategy 로그인 쿠키를 이용한 자동 로그인 패스워드 암호화 이외에 여러 기능들이 존재합니다. 개념 시큐리티 사용을 앞서 인증(Authentication)과 인가(Auth...
MySQL과 연동하고 실습을 통해 JPA를 알아봅니다. 학습 로드맵 스프링부트에 MySQL을 연동합니다. 스프링부트에서 JPA를 사용할 수 있도록 합니다. CrudRepository, JpaRepository 인터페이스를 상속받아 CRUD 작업을 해봅니다. 쿼리 메소드를 이용하여 메소드 이름만으로 원하는 SQL을 실행합니다. @Query를 이용하여 JPQ...
엔티티? JPA에서는 엔티티는 테이블에 대응하는 하나의 클래스라고 생각하시면 편합니다.엄청나게 간단한 코드와 함께 같이 보겠습니다. 엔티티 클래스 데이터베이스의 테이블 |username|passoword| |--------|---------| |test|1234| |admin|admin| spring-boot-starter-data-jpa 의존성을 추...
이 포스팅에서는 테스트 코드와 관련된 정보를 업데이트 해나갈 예정입니다. 스프링은 테스트 환경을 준비하려면 별도의 라이브러리를 추가하고, JUnit 등 여러 가지 신경써야 하지만 스프링 부트는 이러한 설정이 모두 자동으로 갖추어집니다. 앞으로 작성해나갈 포스팅 안의 코드들은 Github 에서 확인이 가능합니다. 프로젝트 구조 스크린샷 20...
이번 포스팅에서는 자주 사용하는 Lombok 어노테이션을 정리해봤습니다. 자주 쓰는 Lombok Annotations |Annotation|설명| |---------|--------------| |@NonNull|Null 값이 될 수 없다는 것을 명시합니다. NullPointerException에 대한 대비책이 될 수 있습니다.| |@Cleanup|자동으...
웹 개발과 관련해서 자주 등장하는 용어들을 이 포스팅에 정리해나갈 예정입니다. 🍪 Cookie 쿠키란? 쿠키는 사용자가 사이트를 방문했을 때, 사용자의 컴퓨터에 저장되는 정보를 뜻합니다. 쿠키 구성 요소 이름: 각각의 쿠키 값을 식별하기 위한 키 값: 특정 이름으로 쿠키에 지정된 값 유효시간: 쿠키의 유지 시간 도메인: 쿠키를 전송할 도메인 경로: 쿠...
💡 그냥 정리하는 블록체인..... 이 포스팅은 계속해서 업데이트 해나갈 예정입니다! 01. 블록체인이란? 데이터 분산 처리 기술 입니다. 네트워크에 참여하는 모든 사용자가 거래 와 관련된 정보를 분산, 저장 하는 기술입니다. 블록 은 개인과 개인의 거래의 데이터가 기록되는 장부입니다. 이런 블록이 형성된 후, 시간의 흐름에 따라 순차적으로 연...
Swagger 스웨거는 API 문서를 자동화 해줍니다! 개꿀.... 그뿐만 아니라 웹 UI를 이용해 테스트도 진행 가능합니다! 선행 조건 Intellij의 springboot initializer를 통해 spring boot 프로젝트를 생성했습니다. maven을 사용합니다. swagger2를 사용합니다. Lombok을 사용합니다. 적용 방법 프로젝트 구...
이 포스팅에서는 스프링부트와 JPA를 연동하는 실습 과정을 담았습니다. JPA? JPA 는 Java Persistent API 의 약자입니다. 영속성(persistence) 관리 와 ORM 을 위한 표준 기술입니다. 그러면 영속성이 뭔지.. 그리고 ORM이 뭔지 먼저 알아 보겠습니다. 영속성 은 Entity에 데이터를 영구히 저장하기 위한 환경 정도라고 ...
이번 포스팅에서는 DBCP를 알아보고, 스프링부트에서 MySQL을 연동하는 과정을 담았습니다. DBCP? 먼저 DBCP 를 알아보기 전에 JDBC 에 살펴보겠습니다. JDBC 는 Java Database Connectivity 의 약자로 자바에서 데이터베이스에 접속할 수 있도록 도와주는 자바 API 입니다. JDBC 의 효율성을 높이기 위해 나온 것이 D...
CORS? SOP 를우회하기 위한 방법! 그러면 SOP 는뭘까? Single-Origin Policy 의 약자로 같은 Origin 에만 요청을 보낼 수 있는 규칙입니다. 즉, 같은 도메인에 해당하는 서버에만 요청이 가능하단 뜻입니다. 그럼 CORS는...? CORS 는 Cross-Origin Resource Sharing 의 약자로 서로 다른 O...
Hypermedia As The Engine Of Application State 이름부터가.. 너무 길다.... 뭐지..?? 천천히 접근해보자 HATEOAS는 REST API와 연관이 있다고 합니다. Rest API에서 R은 Resource...자원과 관련이 있나봅니다! 그래서 찾아 봤더니 HATEOAS는 서버와 클라이언트 관점에서 각각의 역할을 한다고...
웹JAR 클라이언트에서 사용하는 라이브러리(jquery, bootstrap, react 등등...) jar 파일이 있습니다. 메이븐과 같은 의존성 관리 툴을 이용하여 jar 파일을 프로젝트에 추가 합니다. 이 jar파일을 클라이언트 측에서 사용하는 것입니다! 예를 들어 html 파일 안에서 jquery를 불러올때 jar 파일을 이용하는 것입니다. ...
정적 리소스? 클라이언트로부터 요청이 들어왔을 때, 요청에 대한 리소스가 이미 만들어져 있어 그대로 응답하는 경우를 뜻함 정적 리소스 맵핑은 "/**" 기본 리소스 위치 classpath:/static classpath:/public classpath:/resources/ classpath:/META-INF/resources ...
ViewResolve 요청의 accept header에 따라 응답이 달라집니다. accept header는 어떠한 타입의 응답을 원하는지 서버한테 알려주는 역할을 합니다. 요청 쿼리 파라미터에 "/path?format=pdf 다음과 같이 format을 지정해서 원하는 타입을 요청할 수 있습니다. 따라서 ViewResolve가 있어야지, 클라이언트가 원하는 ...
HttpMessageConverters 란? 스프링 프레임워크에서 제공하는 인터페이스 스프링 MVC에서 제공하는 일부분 http 요청 본문으로 들어오는 것을 객체로 변환 하거나 http 응답을 본문으로 변환할때 사용 요청이나 응답에 따라 컨버터가 달리 사용 된다 예를 들어, json으로 요청이 들어 왔으면, json 컨버터가 사용 됨 컴포지션 타입일 경...