전체 글 327

[DTO] 를 더욱 안전하게 사용하는 방법

DTO를 안전하게 사용하자 - setter 를 없애고 생성자를 이용하여 set한다. - 개발자가 의도적으로 new로 인스턴스를 생성하지 않는 이상 계층간 이동시 데이터가 변조될 위험이 없다. 코드예시 : - DTO public class UserDto { private final String name; private final Integer age; // setter를 없애고 생성자로 데이터를 초기화 해서 계층간에 DTO가 변조되지 않게 함 public UserDto(String newName, Integer newAge) { this.name = newName; this.age = newAge; } public String getName() { return name; } public Integer ge..

Spring Boot 2021.10.16

DTO vs VO

정의 DTO(Data Transfer Object) : - 계층 간 데이터를 전달하기 위해 사용하는 객체 (Controller Service 등) - 데이터를 담아서 전달하는 바구니 - getter/setter 메소드만을 갖는다 이외의 다른 메소드는 필요가 없다 (오직 데이터를 담아서 전달만 하는 객체이기 때문) - setter가 있기 때문에 값이 변할 수 있지만, 의도적으로 setter를 없애고 생성자로 값을 넣어서 불변하게 사용하는 것이 각 계층간 이동시 동일한 값을 보장하기 때문에 더욱 안전하게 사용 가능 예시코드 : - dto 클래스 public class userDto { private String name; private Integer age; public String getName() { r..

Spring Boot 2021.10.16

IOC (제어의 역전) - 마틴 파울러

번역 : http://egloos.zum.com/gyumee/v/2512493 [번역] 제어 역전 컨테이너와 의존성 주입 패턴 (1/4) 마틴 파울러(Martin Fowler)자바 커뮤니티에서는 줄곧 경량 컨테이너들이 경쟁적으로 출시 되고 있습니다. 이들은 다른 프로젝트에서 가지고 온 S/W 부품을 조립해서 하나로 통합된 응용 S/W를 만드 egloos.zum.com 원문 : https://martinfowler.com/articles/injection.html Inversion of Control Containers and the Dependency Injection pattern Explaining the Dependency Injection pattern, by contrasting it with ..

Spring Boot 2021.10.15

[Javascript] 이벤트 루프와 Promise

이벤트루프란, 단일 호출 스택인(싱글쓰레드) javascript에서 비동기 처리를 할 때 꼭 필요한 기능이다. 비동기 작업이 끝난 후, 콜백함수들을 보관하고있는 작업큐(Task Queue/Callback Queue/Event Queue 등으로 불린다)에서 콜스택으로 작업을 푸시 해주는 역할을 한다. 콜스택을 주시하고 있다가 콜스택이 비어있게 되면 작업큐에 대기하고있는 작업을 콜스택으로 푸시 해준다. ES6를 지원하는 자바스크립트 런타임 환경에서는 작업큐에 Micro Task Queue라는 것이 추가 되었다. ES6부터 공식적으로 지원하게 된 Promise도 대표적인 비동기 처리함수 인데, 바로 이 Promise의 콜백은, 기존의 setTimeout 등과는 달리 Micro Task Queue로 들어가게 된..

Javascript 2021.10.09

[Laravel] Tinker 대화형 코드 실행 사용법

PHP 5.1 부터 php -a 명령어로 대화형 인터프리터 실행 가능 $ php -a Interactive mode enabled php > echo 1; 1 php > echo 'aa'; aa 그러나 라라벨같은 복잡한 프레임워크에서 입출력을 테스트 하기에는 유용하지 않다. 그래서 나온것이 REPL(Read-Evaluate-Print Loop) 이다. 하나의 입력을 받아서 처리하고 결과를 반환하는 프로그램이다. Laravel5 부터 사용 가능. php artisan tinker 로 사용 가능 $ php artisan tinker Psy Shell v0.10.8 (PHP 8.0.10 — cli) by Justin Hileman >>> $date = Carbon\Carbon::now() => Carbon\C..

Laravel 2021.10.06

[K8S] 쿠버네티스 v1.20 이후 Docker 지원 중단에 대해

1. 내용 정리 2020년 12월 쿠버네티스는 v1.20이후에 컨테이너 런타임으로서 docker 지원을 중단한다고 발표했다. 내용을 정리해보면, 쿠버네티스 클러스터 내부에는 컨테이너 이미지를 가져오고 실행하는 역할을 담당하는 컨테이너 런타임이라는 것이 있는데, 기존에는 대부분 기본으로 docker를 컨테이너 런타임으로 선택했지만 앞으로는 docker가 아닌 containerd 또는 CRI-O를 사용해야 한다. 위 내용이 쿠버네티스 사용자들이 더이상 docker를 사용할 수 없다는 것은 아니다. docker에서 생성하는 이미지는 docker에만 특정된 이미지가 아니라 OCI(Open Container Initiative) 이미지이기 때문에 모든 OCI 호환 이미지는 해당 이미지를 빌드하는 데 사용하는 도구..

Kubernetes 2021.10.03

[K8S] 온라인에서 실습하는 방법

쿠버네티스를 VM 등으로 직접 설치하지 않고도, 간단하게 온라인으로 접속해서 웹브라우저상에서 실습 해볼 수 있는 사이트가 있다. 1. katacode playground https://www.katacoda.com/courses/kubernetes/playground Kubernetes Playground | Katacoda Use Kubernetes in a hosted sandboxed interactive environment www.katacoda.com 2. docker playground https://labs.play-with-k8s.com/ Play with Kubernetes Play with Kubernetes is a labs site provided by Docker and crea..

Kubernetes 2021.10.03

[Docker] git clone으로 laravel 프로젝트 다운받을 때 체크

docker run -it -d -p 80:80 --privileged --name laravel -v C:\docker\laravel:/home/laravel dockingmosei/laravel8:latest 위 형식으로 컨테이너를 생성하게 되면 C:\docker\laravel 폴더와 /home/laravel 폴더가 동기화 된다. 그러면 컨테이너가 실행될때 C:\docker\laravel 폴더 내용이 컨테이너 안의 /home/laravel에 덮어씌워지게 된다. 만약 C:\docker\laravel 이 비어있을 때는 docker 프로젝트에 라라벨 내용이 있더라도 모두 삭제 된다. 그래서 로컬에 git clone 으로 우선 프로젝트를 세팅 해놓은 후에 컨테이너를 실행해야 한다. 이 때 체크할 점. 1. ..

Docker 2021.10.02

[Docker] Intellij + PHP8 + Xdebug3 설정

docker 환경에서 intellij + php8 + xdebug3 설정을 해보자 1. xdebug 설치 2. xdebug 세팅 3. intellij 세팅 1. xdebug extension 설치 # xdebug3 설치 $ apt install php8.0-xdebug # 설치된 모듈 확인 $ php -m # xdebug 버전 확인 $ php --version PHP 8.0.10 (cli) (built: Aug 26 2021 15:50:07) ( NTS ) Copyright (c) The PHP Group Zend Engine v4.0.10, Copyright (c) Zend Technologies with Zend OPcache v8.0.10, Copyright (c), by Zend Technolog..

Docker 2021.09.27

[Intellij] Terminal 에서 VI 사용 시 ESC 키 누르면 Editor 창으로 전환되는 문제

Intellij 또는 phpstorm 사용 시, Editor Terminal 기능으로 VI 사용하다가 ESC 키 누르면 에디터 창으로 전환되는 문제가 있다. 기본적으로 esc 키가 세팅되어 있어서 그런 것인데, 이는 키 설정으로 변경하면 된다. Intellij 기준 File -> Settings -> Tools -> Terminal -> Override IDE shortcuts 메뉴에 Configure terminal keybindings 클릭 Switch Focus To Editor 설정에서 Escape 를 삭제하면 된다.

Intellij 2021.09.27
반응형