분류 전체보기(326)
-
UUID (Universally Unique IDentifier)
UUID 는 네트워크 상에서 고유성이 보장되는 ID 를 만들기 위한 표준 규약이다. 왜 UUID 를 ID 로 사용할까? ID 를 넣을때 auto increment 를 사용해 자동으로 숫자가 올라가는 방식으로 사용하는 경우가 있다. ex) 1, 2, 3, 4 이렇게하더라도 노출이 안되는 부분들도 있겠지만, 예를들어 상세조회나 업데이트, 삭제하기 등을 사용할때 파라미터에 ID 를 넣어 주고받는다. 이때 ID 숫자가 노출되는데 이는 유추할수 있어 보안상의 위험을 초래한다. UUID 에는 여러가지 버전이 있는데 그 중에서 많이 사용하는 1, 4 버전에 대해 알아본다. UUID v1 UUID 는 공통적으로 128비트의 숫자이며, 32자리의 16진수로 표현된다. 8-4-4-4-12 글자마다 하이픈을 집어넣어 5개의..
2024.04.19 -
단방향 데이터 바인딩 양방향 데이터 바인딩
데이터 바인딩은 화면에 보이는 데이터와 브라우저 메모리에 있는 데이터를 일치시키는 것을 말한다. 즉 사용자 인터페이스와 데이터 모델간의 동기화이다. 이에 두가지 주요 방법이 존재한다. 1. 단방향 데이터 바인딩 단방향 데이터 바인딩에서는 데이터가 한 방향으로만 흐른다. 즉 모델에서 뷰로의 데이터 흐름만 존재하고, 뷰에서 모델로의 직접적인 업데이트는 발생하지 않는다. 사용자 인터페이스는 데이터 모델의 상태를 읽기 전용으로 표시하는데 이는 데이터 모델의 변경이 뷰를 갱신할 수 있지만 뷰의 변경이 직접적으로 모델을 갱신하지 않는다. 대표적인 프레임워크는 React 이다. 쉽게말해 HTML 에 바인딩한 데이터를 JS 에서 수정할 경우 화면에는 반영되지만, 화면에서 직접 해당 엘리먼트의 값을 바꿨을때 JS 의 데..
2024.04.18 -
Angular vs React vs Vue
개발자는 항상 적절하며 근거있는 선택을 해야한다. 프론트의 프레임워크는 크게 Angular, React, Vue 가 있다. 현재 대부분의 학원들은 프론트엔드는 React 로 가르치고 있다. 이 글은 왜 리엑트를 사용해야하는가 에 대한 궁금증으로 작성한다. 각 프레임워크는 구성 요소 기반이고 UI 기능을 빠르게 생성할 수 있다. 그러나 모두 구조와 아키텍처가 다르다. 1. Angular Angular 는 TS 를 기반으로 하는 프레임워크이다. 평소 좋아하는 백엔드 프레임워크인 Nest.js 가 Angular 에 영감을 받아 만들어졌다. 이는 MVC(Model-View-Controller) 프레임워크이다. 각 Angular 애플리케이션에는 적어도 하나의 루트 구성 요소와 하나의 루트 모듈이 존재한다. Ang..
2024.04.16 -
Spring Dispatcher Servlet & Request Life Cycle
Dispatcher Servlet 이란? dispatcher(보내다) 라는 뜻 HTTP 프로토콜로 들어오는 모든 요청을 가장 먼저 받아 적합한 컨트롤러에 위임해주는 프론트 컨트롤러이다. 자세히는 클라이언트로부터 어떤 요청이 들어오면 톰캣과 같은 서블릿 컨테이너가 요청을 받게 된다. 그리고 모든 요청을 Dispatcher Servlet이 가장 먼저 받게 된다. 이 서블릿은 공통적인 작업을 먼저 처리한 후에 해당 요청을 처리해야 하는 컨트롤러를 찾아서 작업을 위임한다. 즉 컨트롤러를 구현해두기만 하면 Dispatcher Servlet이 알아서 적합한 컨트롤러로 위임을 해주는 구조가 되었다. 요청을 컨트롤러를 넘겨주는 방식은 효율적으로 보이지만 Dispatcher Servlet이 모든 요청을 처리하다 보니 이..
2024.01.29 -
Spring Bean
빈은 스프링 컨테이너에 의해 관리되는 재사용 가능한 소프트웨어 컴포넌트이다. Spring IoC 컨테이너가 관리하는 자바 객체를 빈(Bean) 이라고 한다. 스프링 컨테이너가 관리하는 자바 객체를 뜻하며, 하나 이상의 빈을 관리한다. 빈은 인스턴스화 된 객체를 의미하고, 스프링 컨테이너에 등록된 객체를 스프링 빈이라고 한다. @Bean 어노테이션을 통해 메서드로부터 반환된 객체를 스프링 컨테이너에 등록한다. 빈은 클래스의 등록 정보, Getter/Setter 메서드를 포함하며, 컨테이너에 사용되는 설정 메타데이터로 생성된다. 설정 메타데이터 : XML or Java Annotation, 자바 코드로 표현하며 컨테이너의 명광과 인스턴스화, 설정, 조립할 객체 등을 정의한다. IoC 의 특징 일반적으로 처음..
2024.01.16 -
Git Flow
배경 기본적으로 Git 을 사용해 어떤 행동을 하게 된다. Commit Push Pull 이를 활용해 Git 을 사용하게 되는데 Git 을 사용해 개발하는 환경에서 Branch 간의 문제 없이 배포까지 안정적으로 수행하기 위해 사용하는 것이 Branch 를 관리하는 전략이다. 실제로 개발할때는 한 명의 개발자가 아니라 몇 십명의 개발자가 서로 협업해 개발을 하게 된다. 그렇기 때문에 복잡한 상황에서 Git 이 꼬이지 않도록 하는 것이 중요하고, 안정적으로 운영해 나가야 될 코드들만 배포를 시켜야 되는 것도 굉장히 중요하다. 때문에 Git Flow 라는 전략이 탄생했다. 주요 Branch 1. Main(=Master) 실제 운영 환경에 나가 있는 코드만을 가지고 있는 branch, 그만큼 조심스럽게 다뤄야..
2024.01.16