본문 바로가기

분류 전체보기242

DTO vs VO vs Entity DTO (Data Transfer Object) View와 Controller 사이에서 데이터 전송에 사용되는 객체. Setter와 Getter를 가지며 비즈니스 로직은 넣지 않는다. VO (Value Object) 주소값이 아닌 실제 들어있는 값만 비교한다. 가령 Money라는 속성이 같은 10000원이라면, 돈의 발행번호가 서로 다르더라도 같다고 판단한다. equals()와 hashcode() 를 오버라이드 해야한다. 하지 않으면 에러 발생한다. Getter만 있고 Setter는 가지지 않는다.(생성자에서 값 할당) Entity 실제 DB 테이블과 값이 매핑되는 클래스이다. 이를 기준으로 테이블이 생성되고 스키마가 변경된다. 따라서 절대로 Entity를 값을 요청하거나 응답하는 클래스로 사용해서는 안.. 2022. 7. 2.
JIRA와 Bitbucket을 통해 개발 추적 http://pseg.or.kr/pseg/index.php?mid=atlassian&document_srl=7134&listStyle=viewer Atlassian 솔루션 - JIRA와 Bitbucket을 통해 이슈로부터 개발 추적 이 문서는 JIRA와 Bitbucket을 이용하여 이슈로부터 개발을 추적하는 예시를 보여준다. 시나리오 버그로부터 이슈를 추적하기 위한 간단한 시나리오는 다음과 같다. 1. 버그 이슈 등록2. 버그를 pseg.or.kr 요약 1. jira 에 이슈를 만든다. 2. 이슈 수정을 위한 브랜치를 생성한다.(feature/~~~~~) 3. 생성한 브랜치에서 이슈를 수정하고 commit, push한다. 4. bitbucket에서 PR(Pull Request)를 생성하고 리뷰어를 지정하.. 2022. 6. 21.
[SpringBoot] annotations 의미를 간략하게 기술 @Data Lombok을 설치하면 사용할 수 있는 어노테이션. 아래 기술하는 것들을 한 번에 설정할 수 있다. @toString - 해당 메소드의 모든 필드를 출력하는 toString 메소드를 생성합니다. @EqualsAndHashCode - hashcode와 equals 메소드를 생성합니다. @Getter / @Setter - 말 그대로 getter함수와 Setter 함수를 생성합니다. @NoArgsConstructor - 파라미터를 요구하지 않는 생성자를 생성합니다. (access =AccessLevel.PROTECTED) 를 추가하게 될 경우 기본생성자의 접근 권한을 protected로 제한하게 됩니다. @RequiredArgsConstructor - 파라미터를 요구하는 생성자를 생성합니다. @Al.. 2022. 6. 20.
[SpringBoot] Path with "WEB-INF" or "META-INF" 메세지 발생하며 jsp 파일 404 not found 현상 Path with "WEB-INF" or "META-INF" 위 메세지가 warning으로 발생하며 페이지를 찾지 못한다. 원인은 스프링부트의 embed-Tomcat 에 jsp 를 처리하는 서블릿이 없기 때문이다. 디펜던시를 하나 추가하면 해결된다. org.apache.tomcat.embed tomcat-embed-jasper 2022. 6. 17.
AWS 서비스들에 대한 정리 Route53 https://brunch.co.kr/@topasvga/49 https://brunch.co.kr/magazine/devops 대분류 소분류 내용 개요 AWS에서 제공하는 DNS(Domain Name Service) 일반 DNS의 이해 도메인을 IP로 변환하여 IP 네트워크 통신하여 목적지 IP를 찾아가는 과정 (http://naver.com > 202.222.xxx.xxx) 일반 DNS와 Route53의 차이점 Route53에서 네임서버 등록 시, 순서가 다름 일반적으로 도메인 등록 시 네임서버를 지정하는데 Route53에서는 할당 후 네임서버 정보를 도메인 등록 대행기관(가비아, 아이네임즈 등) 사이트에 접속해 네임서버를 지정 Route53은 Public host zone과 Privat.. 2022. 4. 7.
Simple Text Editor Implement a simple text editor. The editor initially contains an empty string, . Perform operations of the following types: append - Append string to the end of . delete - Delete the last characters of . print - Print the character of . undo - Undo the last (not previously undone) operation of type or , reverting to the state it was in prior to that operation. Example operation index S ops[index.. 2022. 3. 31.
kotlin 라이브러리의 성능 우위에 있는 것들 정리 같은 기능을 하지만, 성능이 더 빠른 것들을 기록한다. 굵은 글씨가 더 빠름 if ~ if else ~ else when substring(intrange) substring(startIndex, endIndex) String + String StringBuilder().append(String).append(String).toString() 2022. 3. 31.
New Year's Day and people are in line for the Wonderland rollercoaster ride. It is New Year's Day and people are in line for the Wonderland rollercoaster ride. Each person wears a sticker indicating their initial position in the queue from to . Any person can bribe the person directly in front of them to swap positions, but they still wear their original sticker. One person can bribe at most two others. Determine the minimum number of bribes that took place to get to a g.. 2022. 3. 30.
pkg 로 바이너리 파일 생성 pkg는 nodejs가 설치되어 있지 않은 환경에서 실행할 수 있도록, standalone의 바이너리 파일을 만들어서 배포해주는 모듈이다. 이번에 외부 개발자에게 배포해야할 일이 생겨 적용해 보았고, 사용 방법에 대해 간략하게 기술한다. 설치는 다음과 같다. npm install -g pkg 글로벌 설치하지 않고 devDependancy 에만 적용하고 싶다면, npm install --save-dev pkg설치 되었다면 package.json에 설정값을 추가한다. "bin": { "app": "./bin/www" }, "scripts": { "start": "nodemon --exec babel-node ./bin/www", "build": "pkg . --debug --out-path dist" }, .. 2022. 3. 28.