Coder Social home page Coder Social logo

flow-task's Introduction

Flow-Task

안녕하세요, 이태균입니다.
마드라스 체크 기업 과제로 진행한 파일 확장자 차단 프로젝트의 리드미 파일입니다.

프로젝트 주소

요건

고정 확장자

  • 고정 확장자는 자주 차단되는 확장자 리스트입니다. 기본적으로 체크 해제 상태입니다.
  • 고정 확장자를 체크/해제하면 데이터베이스에 상태가 저장됩니다. (새로고침 시 상태가 유지됩니다.)
  • 커스텀 확장자 리스트에는 표시되지 않습니다.

커스텀 확장자

  • 확장자의 최대 입력 길이는 20자입니다.
  • 추가 버튼을 클릭하면 데이터베이스에 저장되며, 아래 영역에 표시됩니다.
  • 최대 200개의 커스텀 확장자를 추가할 수 있습니다.
  • 확장자 옆 X 버튼을 클릭하면 데이터베이스에서 삭제됩니다.

추가 요건

  • 고정 확장자는 CHECK/UNCHECK로 확장자에 상태를 부여합니다.
  • 보안과 관련하여 정보의 무결성이 중요하다고 판단하여 새로고침 시 항상 고정 확장자 리스트를 조회하도록 구현했습니다.
  • 커스텀 확장자에는 고정 확장자가 추가되지 않도록 했습니다.
  • 커스텀 확장자는 유니크하므로 중복 추가는 불가능합니다.

데이터베이스 스키마

고정 확장자

CREATE TABLE fixed_extensions (
    id INT AUTO_INCREMENT PRIMARY KEY,
    extension_name VARCHAR(255) NOT NULL UNIQUE,
    status VARCHAR(255) NOT NULL DEFAULT 'UNCHECK'
);

커스텀 확장자

CREATE TABLE custom_extensions (
    id INT AUTO_INCREMENT PRIMARY KEY,
    extension_name VARCHAR(20) NOT NULL UNIQUE
);

고정 확장자 데이터 삽입

INSERT INTO fixed_extensions (extension_name)
VALUES  
    ('bat'),  
    ('cmd'),  
    ('com'),  
    ('cpl'),  
    ('exe'),  
    ('scr'),  
    ('js');

flow-task's People

Contributors

taegyun1995 avatar

Watchers

 avatar

flow-task's Issues

과제 2-2 : 커스텀 확장자 리스트를 조회하는 API 기능 생성

요건
2-2
추가 버튼 클릭시 db에 저장되며, 아래쪽 영역에 표현됩니다.
-> 프론트 부분에서 처리했습니다..

+) 새로고침시 유지되어야 하기 때문에 조회하는 기능을 만들어야합니다.

  • 커스텀 확장자 리스트를 조회할 수 있는 API 기능이 필요합니다.

과제 1-1 / 고정 확장자 View 생성

요건
1-1
고정 확장자는 차단을 자주하는 확장자 리스트이며, default는 unCheck되어져 있습니다.

고정 확장자 관련 View 생성했습니다.

이슈 : 커스텀 확장자 박스의 현재 개수 조회

기존 프론트 JS부분에서 현재 개수를 조회했으나,

백앤드 API 부분에서 커스텀 확장자 리스트를 조회할 때 현재 개수를 함께 Response에 반영하는 로직으로 변경했습니다.
프론트에서 조회하는 단점을 보완했습니다.

프론트에서 실제 확장자 개수를 추가 및 삭제를 했을 때 실제 확장자 개수를 매번 조회를 해야하기 때문에,
사용자에게 실시간으로 현재 개수가 반영이 돼야 하므로 사용자가 추가 및 삭제를 할 때마다 커스텀 확장자 리스트를 조회하는 API를 사용했습니다.
이를 통해, 사용자에게 실시간으로 확장자 현 상태를 보여줄 수 있습니다.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.