Giter VIP home page Giter VIP logo

23-w-cow-project-frontend's Introduction

Pro-Folio

포트폴리오 웹 사이트 프론트

Pro-Folio : 포트폴리오 웹 사이트

image

팀소개


박가현 김세빈 모유경
FE FE FE

프로젝트 소개

프로젝트 기간

  • 기획 및 설계 : 23.01.16 ~ 23.01.29
  • 프로젝트 개발 : 23.01.19~ 23.02.23

프로젝트 기획, 설명

  • 자신의 프로젝트를 게시하고 다른 사람의 프로젝트를 확인할 수 있는 웹 사이트

23-w-cow-project-frontend's People

Contributors

gahyuun avatar keemsebin avatar yougyung avatar

23-w-cow-project-frontend's Issues

url 변경으로 이동시 새로고침 발생

문제상황 ❗


  • 헤더를 통해 페이지를 이동하는 것은 문제가 되지 않는데 url 변경을 통해 이동하면 새로고침이 발생하여 isLogin초기화에 대한 문제가 생깁니다
    렌더링과 로컬스토리지에 대한 학습이 필요한 것 같습니다

세부설명🔖


해결방안📕

--- const [isLogin, setIsLogin] = useState(getCookie()); 코드를 통해 해결, isLogin을 useState로 관리하기에 새로고침 시 초기화, 쿠키에서 가져온 값을 isLogin의 초깃값으로 설정해줌으로써 문제 해결

api 분리

문제상황 ❗


  • api를 파일로 따로 분리함 ( 관심사 분리)

세부설명🔖


  • api를 왜 분리했는지
  • 보통 api 분리는 코드의 가독성도 있을 수 있지만 해당 api를 재사용하게 된다면 큰 이점이 있다
  • 물론 이 프로젝트는 간단한 프로젝트이기에 많지 않은 코드에서 api를 분리하는 것은 혼동을 오게 할 수도 있지만
  • 위와 같은 장점으로 인해 시도를 해보았다

해결방안📕


Feat: 이미지파일 전송 에러

문제상황 ❗


  • api 연결 시, 이미지 파일 전송 불가

세부설명🔖


  • 다른 column의 경우 정상적으로 진입하는 것을 확인하였으나 이미지 파일만 undefined로 도착

해결방안📕


  • header의 'Content-Type': 'multipart/form-data' 추가
  • backend의 column명이 image -> portfolioimg로 변경되었음, 전달과정에서 오류가 있던 것으로 확인

Feat : 쿠키 저장 방식 구현

문제상황 ❗


  • 이 프로젝트에서 쿠키, 로컬 스토리지, 세션 스토리지 중 어떤 걸 쓰는 게 더 적합할지에 대한 문제

세부설명🔖


  • 원래는 로그인 유지 기능을 생각하며 로컬 스토리지에 저장하는 것을 생각했는데 refresh token이 없어서 갱신을 못하기에 로그인 유지 기능을 못하게 되었고 이 기능이 없으면 로컬 스토리지에 저장하는 이유가 사라짐
    그래서 세션이랑 쿠키 저장방식에 대한 고민이 필요

해결방안📕


-쿠키 저장 방식의 가장 큰 단점은 용량과 서버 부하와 보안에 있음 하지만 이 프로젝트 경우에 서버 전송이 많지 않고 쿠키에 토큰만 저장하기에 쿠키의 단점이 크게 영향을 미치지 못함. 보안은 그냥 쿠키가 아닌 httpOnly 쿠키를 사용하여 http 통신이 아닌 자바스크립트 코드가 접근하지 못하게 하여 보안을 강화했음. 또한 토큰이 필요한 경우가 많기에 서버로 매번 전송되는 쿠키는 장점이 될거라고 생각함 이러한 이유로 이 프로젝트에는 쿠키 저장방식이 가장 적합하다고 여김

회원가입 nicknameCheck 변수 의존성

문제상황 ❗


  • 회원가입 nicknameCheck 변수가 너무 의존성이 높은 것 같습니다

세부설명🔖


  • 회원가입 Join.jsx 파일안에서 닉네임 중복 여부를 nicknameCheck와 setNicknameCheck라는 useState로 설정하였는데 전체 로직이 이 state에 대한 의존도가 너무 높고 로직이 복잡하다는 생각이 들었습니다

해결방안📕


-기능을 다 완성한 후 리팩토링 기간에 같이 페어프로그래밍 하면서 로직 정리하면 좋을 것 같아요!

Refactor : Component 분리

문제상황 ❗


  • URL이 resource를 명확하게 표현하지 못함

세부설명🔖


  • 검색결과페이지와 전체결과페이지의 url이 동일하여, url로 resource를 접근하기 불편함
  • 유지보수 차원에서 명확하게 page
  • 프로젝트마다 다르겠지만 이 프로젝트에서는 현재 검색 결과 페이지가 프론트에서 직접 메인페이지 결과를 필터링하여 보여주는 것이 아닌 서버에서 받아온 데이터를 노출하는 것이므로 url을 바꾸는 것이 적합하다고 여김

해결방안📕


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.