Giter Club home page Giter Club logo

art_archive's Introduction

art_archive

RESTful API에 대한 이해

ref see later

this project is deal with famous artists and their masterpiece data

additional will be added

3. 다음 작업을 수행하는 SQL query들과 해당 리턴값을 작성해주시기 바랍니다.

답안


4. CRUD에 대한 설명

CRUD는 Create(생성), Read(읽기), Update(수정), Delete(삭제) 를 말합니다. 이 CRUD를 API와 sql query 관점에서 데이터를 송신할때 method(http request)와 query는 아래와 같습니다

CRUD method sql query
Create POST INSERT
Read GET SELECT
Update PUT UPDATE
Delete DELETE DELETE

가장 보편적인 예시로는 게시판의 기능을 생각할 수 있습니다.(글 쓰기, 읽기, 수정, 삭제)


5. art_archive를 api로 설계, document 만들기

답안

고려할 사항

  • API Resource
  • 어떤 endpoint를 갖는지
  • endpoint 별로 받는 param
  • 성공과 실패시 response

6. TDD 를 설명해주세요. 이 개발 방식의 장단점은 무엇일까요?

  • TDD란?: Test Driven Development 테스트 주도 개발

개발을 시작하면 엔지니어가 개발을 구현하는 기능을 먼저 만드는것이 아니라
테스트 코드를 먼저 만들어(처음엔 무조건 실패하는 테스트코드) 그 테스트를 통과하는
코드를 만들고, 후에 엔지니어의 프로젝트에 알맞도록 리팩토링 한다.

장점: 정의에서 표현되었듯 리팩토링 하기에 편하다.
저는 리팩토링을 좋아하는데, 이유는 군살없는 논리적인 코드가 나왔을때 말로 표현못할 뿌듯함을 느낍니다.
하지만 아직까진 처음 작성한 코드가 이렇게 되기란 쉽지 않습니다.
테스트코드가 있고, 그 결과가 정확하다면 저는 테스트코드를 믿고 리팩토링을 하는데 어려움이 없을것입니다.

예전에 TDD를 몰랐을때 유저 등록폼을 만들었는데 그 폼 하나에서 발생되는 경우의 수가 약 20가지였습니다.
그때 20가지를 모두 테스트 하는게 두려웠는데 TDD를 적용한다면
두려움 없이 리팩토링을 할 것이고 다양한 시도를 해볼 수 있습니다.

단점: 테스트 코드를 짜는것이 생산성에 영향을 준다
먼저 테스트 코드를 학습해야 하고, 이것을 내 프로젝트에 알맞게 적용해야 합니다.
패스트캠퍼스의 hiring day를 위한 프로젝트를 약 8일간 진행했는데 이때에 짧은 기간때문에
테스트 코드는 이후로 미뤄야겠다는 결정을 내린 경험이 있습니다.

하지만 저는 TDD에 대해 찬성하며 테스트 코드를 만드는 시간이나 고민하며 테스트하는 시간이 비슷하리라 생각합니다.


확인

library

pip install -r requirements.txt

commit 전 pep8 체크

ln config/git/hook/pre-commit .git/hooks/

art_archive's People

Contributors

yevgnenll avatar

Watchers

James Cloos avatar  avatar  avatar

art_archive's Issues

작품 삭제하기

작품 삭제하기

  • 원하는 작품을 삭제
  • 에러메세지 확인 이상 없는지

예술가 정보 수정

  • 수정을 목적으로 입력하지 않은 항목은 수정되지 않았는가
  • 정확한 항목이 수정되었는가
  • 에러메세지 확인 이상 없는지

예술가 삭제

  • 원하는 예술가의 정보가 삭제되었는가
  • 삭제시 예술가의 작품 또한 삭제가 되었는가
  • 에러메세지 확인 이상 없는지

작품 보기

작품보기

  • 리스트를 클릭해서 들어왔을때 user가 원하는 작품이 올바르게 보여지는가
  • db안에 있는 image url을 통해 이미지가 제대로 보여지는가
  • images, artists 작품과 예술가의 이름이 나타나는가
  • 에러메세지 확인 이상 없는지

작품 정보에 대해 id값으로 접근함

테이블에 event 발생시 그 다음은 어떻게 할 것인가?

get method를 제외하고 모든 테이블엔 event가 발생한다(CUD)

그 뒤에 무엇을 해야하는가?


  1. 예술가, 작품 테이블에 데이터가 입력되고 나면 무엇을 보여줘야 하는가?
    -> 생성된 데이터 detail 페이지
  2. 수정이 되었을땐 어떻게 할 것인가? -> 수정된 데이터의 detail 페이지
  3. 삭제 후 어떻게 할 것인가? -> 리스트

이 3가지를 고려할때 변경되어야 하는 부분은?
return에 반드시 id값이 들어가야 한다

  • 위 내용과 관련하여 문서 수정

작품 수정하기

작품 수정하기

입력 된 작품을 수정함

  • 문서에서 제시한대로 입력하지 않은 필드는 수정이 되지 않고 유지되어있는가
  • 수정한 항목이 정확하게 user의 의도대로 수정이 되었는가
  • 에러메세지 확인 이상 없는지

예술가 리스트 만들기

  • 예술가 리스트가 보여지도록
  • page, count 파라미터를 이용해 페이징 완성
  • search 기능 구현
  • 에러메세지 확인 이상 없는지
  • pagination json 구현

플라스크 설치 및 셋팅

플라스크 init

  • 플라스크에 대한 기본 설정
  • hello world 찍어보기
  • 구조 파악을 위한 준비(학습)

[DB] images, artists 테이블 설정하기

각각의 테이블을 연결하고 셋팅하기

  • 테이블을 만들어서 주어진 sql파일의 데이터를 입력한다.
  • shell에서 데이터가 제대로 들어와있는지 확인함
  • join을 위한 code까지 확인

예술가 입력

  • 예술가 입력
  • 문서에 에러코드 추가해야함
  • 에러메세지 확인 이상 없는지

작품 리스트 paging구현 및 검색기능

작품 리스트 paging구현 및 검색기능

  • 페이징 -> page, count 파라미터를 사용해 구현하기
  • 검색 -> 검색 단위마다 파라미터를 나눠 검색하도록하기
  • 에러메세지 확인

예술가 하나하나 보기

  • 리스트에서 선택한 예술가 보기
  • 예술가가 만든 작품도 보여줌
  • 에러메세지 확인 이상 없는지

예술가 정보에 대해 id값으로 접근함

readme.md

각 문제별로 readme파일을 나누어서
링크를 클릭해서 접근하여 좀 더 보기 편하도록 수정ㄱㄱ

페이징 모듈화

페이징은 artists, images 모두에서 중복되어 사용되기 때문에
충분히 module화가 가능함

이후에 artists가 완성되면 이 부분을 반영할것

작품 입력하기

작품 입력하기

  • 입력페이지에 내가 입력하고자 하는 작품의 예술가를 선택하여 구현할 수 있는가?
  • 데이터가 올바르게 입력되고 DB에서 확인했을때 이상이 없는가?
  • 에러메세지 확인 이상 없는지

리스트 중심으로 html 나누기

리스트 중심으로 html 나누기

template 설계

  • 만들어진 리스트 html을 이용해 header, footer를 나눈다
  • header에 home, 다른 리스트 보기 링크
  • base.html 을 만들어 html을 재사용하도록 셋팅

작품 리스트 만들기

작품 리스트 만들기

  • 작품 리스트를 위한 controller 만들기
  • html 로 화면에 보여주기 -> json 형식으로 보여주기
  • 에러메세지 확인 이상 없는지

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.