분류 전체보기

    [Spring Boot] Controller, Service, Repository

    Controller와 Service, Repository는 각각 역할이 있다. 흐름은 위와 같다. 컨트롤러는 client와 소통을 하며 데이터를 받거나 넘겨주고 서비스에서는 비즈니스 로직만을 작성한다. 여기서 Dao가 DB와 연결하며 CRUD를 수행하는데 이를 Repository라고 보면 된다. 1. Controller 가장 큰 역할은 Client와의 소통이다. Client로 부터 받은 데이터를 Service로 넘겨주어 Service가 비즈니스 로직을 수행하도록 한다. 그리고 Service로부터 데이터를 받아 Client로 넘겨준다. @RestController public class PostsApiController { private final PostsService postsService; @Post..

    [Article] 가짜 크립토 월렛

    Review and analysis of fake Trezor cryptowallet Fake hardware cryptowallet, and how bitcoins were stolen from it. www.kaspersky.com 해당 뉴스에서는 오픈소스로 운영되고 있는 Trezor Model T 지갑에 대한 얘기다. 요약하자면 사용자가 Trezor Model T 지갑을 구매함 알고보니 해커가 준비했던 Trezor Model T 지갑이었음. 해커가 준비한 지갑은 처음 구동시 펌웨어 업데이트를 통해 정보를 갈취. 개발자 측에서 이를 방지하여 펌웨어 버전을 띄엄띄엄 만들어버림. 즉, 사용자가 자신의 크립토 자산을 지키기 위해 하드월렛을 구매했지만 오히려 하드월렛이 해킹당하는 상황이다. 해당글에서도 전문..

    [Docker] `error storing credentials - err: exit status 1, out: `pass not initialized: exit status 1: Error: password store is empty. Try "pass init".``

    docker login을 하려고 했는데 에러가 발생했다. login을 하려면 pass라는 과정을 거쳐야 한다고 한다. docker hub와 같은 외부 저장소와 상호작용 하기 위해서는 사용자의 자격 증명을 저장해야 한다고 한다. Linux 환경에서는 도커가 pass 라는 바이너리를 찾는데 이게 없어서 나타나는 오류인 것 같다. docker login docker login: Login to a registry. docs.docker.com pass 를 추가해 주기 위해서는 아래 사이트에 설명이 나와있다. Learning Center and sign in docs.docker.com 공식문서에서는 Docker Desktop을 통해 로그인하는걸 추천한다. gpg --generate-key pass init

    [Article] 마이크로소프트의 코파일럿

    “대중화 한 발짝” 마이크로소프트, 코파일럿 지원 앱 및 테스트 규모 확대 마이크로소프트가 오피스 앱 포트폴리오에 AI 비서 코파일럿 통합 작업을 진행 중인 가운데 코파일럿의 고객 평가가 600곳 기업으로 확대된다. 평 www.itworld.co.kr 마이크로소프트는 코파일럿 AI를 자기들의 서비스에 더욱더 확장할 것이라고 밝혔다. AI가 계속 발전하고 있는 시기에 기업이 할수있는 대응이라고 생각한다. 기존 액셀 등 365 마이크로 소프트 제품에 AI가 결합된다면 업무의 생산성은 당연히 높아진다고 생각한다. 업무의 생산성은 높아지지만 그만큼 보안에 더더욱 신경써야 한다고 생각한다. GPT사례만 보더라도 삼성 심지어 구글까지 GPT를 사용함으로써 보안에 문제가 있었다. 뉴스를 보면 아래와 같은 문구가 있다..

    [Spring Boot] DTO vs VO vs Entity

    1. DTO (Data Transfer Object) DTO란 데이터 전송 객체이다. 말그대로 데이터를 전송하기 위한 객체로 사용된다. class colorDTO{ private int red; private int blue; private int green; public colorEntity(int red, int blue, int green) { this.red = red; this.blue = blue; this.green = green; } public int getRed() { return red; } public int getBlue() { return blue; } public int getGreen() { return green; } public void setRed(int red) { t..

    [정리] DDD 설계 vs SQL중심 설계

    1. DDD (Domain Driven Design) (1) DDD란? 먼저 도메인이란 소프트웨어로 해결하고자 하는 문제 영역이다. 예를 들면 온라인 쇼핑몰의 도메인은 전자상거래이다. 하위 도메인으로 상품 판매의 이커머스 도메인이 있고 그 하위 도메인으로 상품이라는 도메인이 있다. 이러한 도메인을 중심으로 설계해 나가는 방법을 DDD(도메인 주도 설계)라고 한다. (2) DDD가 왜 필요한가? DDD는 기존 어플리케이션 설계가 도메인에 대한 이해가 부족한 상태로 설계 및 개발 되었다는 반성에서 출발했다. DDD에서는 현실 -> 서비스 로의 일방향 소통구조를 탈피하여 현실 서비스 의 쌍방향 커뮤니케이션을 위해 필요하다. 예를 들면 상품판매의 도메인을 놓고 기획자와 개발자는 다른 생각을 가지고 있을 수 있다..