Web
-
React 동영상 업로드 및 썸네일 생성 구현기Web/HTML,CSS,JS 2025. 3. 8. 17:52
대단한 기능은 아니지만 새로운 기능과 JS 메서드, Safari 이슈를 알게 되어 공유겸 메모겸 블로그 글로 작성하게 되었다.요구사항 시나리오1. 유저가 우리 서비스에 동영상을 업로드 한다2. 업로드한 동영상을 s3 서버에 저장한다3. 업로드한 동영상에서 썸네일을 추출하여 이미지로 렌더링한다4. 유저는 본인이 올린 영상의 썸네일을 보게된다 과정먼저 검색을 통해 썸네일을 어떻게 추출할지 조사했다.가장 도움이 된 글은 이것이다 자바스크립트 Canvas를 활용해 동영상에서 이미지 추출해서 저장하기라인은 동영상 url과 프리뷰 url을 같이 전송해야합니다. 그런데, 세일즈포스에서는 동영상 저장시 프리뷰 이미지를 제공해주지 않습니다. 고로 동영상에서 이미지 썸네일을 추출해서 저장해줘claver-pickle.tis..
-
왜 실제 웹이 피그마와 달랐을까? line height vs paragraph spacingWeb 2023. 11. 6. 00:21
디자이너분들과 오랫동안 겪었던 이슈인데 이번에 해결했고 공유하면 좋을 거 같아 적어본다 문제우리 회사에서는 지속적으로 있었던 문제가 있었다.A : "B 님 피그마랑 웹이랑 마진이 안맞아요"B : "수치상으로는 정확히 맞는데 보기에는 안맞나요?"A : "피그마 미러로 캡처해서 보면 1~2px씩 어긋나 있어요"위 대화가 반복되었다. 분명 문제가 있다는 걸 알고 있었지만, 개발해야 할 부분은 여전히 많고, 데드라인은 점점 다가오고 있었다.그렇다고 당장 해결할 수도 없었고, 결국 알면서도 문제를 안고 가야 하는 상황이 괴로웠다.일단 수치를 믿지 말고 그냥 눈으로 보기에 똑같이 맞추어야 되나? 생각까지 해봤다 그러다 회사의 큰 프로젝트가 어느 정도 마무리된 후, 본격적으로 이슈를 제기했다. 다행히 디자이너분도 같..
-
OpenAPI TypeGenerator 도입하여 타입 걱정 없이 개발하기Web 2023. 10. 2. 00:11
들어가며 백엔드와 협업을 할 때 API 명세를 보며 해당 API의 주소, Method ,Request, Response 등의 타입을 정의하는 것과 API 스펙이 변경되었을 때 다시 문서를 확인하고 위의 행동을 반복하는 것은 귀찮고 시간이 많이 소요된다 우리 회사에서 어떻게 위의 일을 처리하고 있는지, OpenAPI TypeGenerator가 어떤 도움을 주고 있는지 살펴보려고 한다. OpenAPI TypeGenerator가 어떤 문제를 해결할 수 있을까? OpenAPI Typegenerator은 OpenApi specification을 기반으로 여러 가지 데이터 형식을 자동으로 생성할 수 있는 라이브러리이다. OpenAPI Typegenerator로한번 잘 구축해 두면 타입스크립트를 사용할 때 어쩔 수 ..
-
신입 프론트엔드 개발자 취업 3개월 후기Web 2023. 6. 20. 22:41
들어가며 오랜만에 블로그 작성을 하는 거 같은데 최근에 회사를 다니게 되었고 오늘이 딱 3개월 차가 되었다. 나는 대학교 3학년을 다니며 취준을 시작하게 되었고, 약 1년의 준비 끝에 파이퍼블릭이라는 스타트업에 다니게 되었다 취준을 하면서 느낀점과 회사를 다니면서 느낀 점에 대해 후기를 남겨보려 한다. 쉽지 않은 취업 처음에는 자신이 있었다. 신입 중에선 나름 스펙을 쌓은 편이라고 생각했고 구현능력도 스스로 좋다고 생각했다 그리고 22년도 초쯤에 같이 공부하던 사람들이 좋은 회사에 가는 모습을 보면서 자만했었던 거 같다. 과제테스트는 대부분 통과하긴 했지만 일단 서류에서 걸러지는 경우가 많았다. 그리고 면접을 잘 보아야 하는데 초반에 긴장하고 떠는 모습을 보였던 거 같다. 이제와 생각해 보면 덜덜 떨면서..
-
next.js 13 page directory를 app directory 로 마이그레이션하기Web/Next.JS 2023. 2. 22. 04:52
next 13이 나오고 많은 기능이 새로 나왔다. 1. app Directory 업데이트 소식, 2. 터보팩 3. 새로운 next/image 4. 새로운 @next.font 5. next/link 없이 가능하게 변경 그중 app Directory를 사용할 때 몇가지 차이점은 1. layout : layout 구조를 사용하여 경로간 ui를 공유하고 재렌더링을 피할수있다. 2. server components : react 18에서 지원하는 서버 컴포넌트를 기본값으로 만든다. 3. streaming : 데이터를 필요로 하지 않는 페이지는 바로 렌더링하고 데이터를 불러오는 페이지는 로딩 상태로 표시 할 수 있는 기능 4. Data Fetching : react에서 fetch를 확장시켜 적용하였는데 cache ..
-
리액트 성능 최적화 기법 3 - 코드 스플릿, lazy-loadingWeb/React.JS 2022. 11. 16. 17:40
문제 원래 이렇게 평범하게 import 해서 Routing 하던 컴포넌트가 있다. import React from 'react' import { Switch, Route } from 'react-router-dom' import './App.css' import ListPage from './pages/ListPage/index' import ViewPage from './pages/ViewPage/index' function App() { return ( ) } export default App 어떤 번들을 사용하고 있는지 확인할 수 있는 도구인 cra bundle analyzer을 가동해보면 청크를 한 뭉탱이 가져와 적절하지 않게 사용하고 있다는 것을 알 수 있다. (refractor은 특정 페이지에..
-
리액트 성능 최적화 기법 2 - 자바스크립트 실행 시간 줄이기Web/React.JS 2022. 11. 15. 16:50
자바스크립트 실행시간을 어떻게 줄이지? 개발자 도구 -> 성능 탭으로 가면 프로파일링 시작 버튼을 누름으로써 성능을 볼 수 있다, 탭에 나와있는 결과를 보며 비정상적으로 긴 실행 시간을 가지고 있는 컴포넌트가 있다면, 해당 컴포넌트로 가서 로직을 변경하므로써 해결할 수 있다. 실습 성능 탭에서 프로파일링을 하면 나오는 창이다. 보면 Article 이라는 컴포넌트의 자식 요소들이 유독 눈에 띄는데 끊어지고, 실행되고를 반복하고 있는걸 확인 했다. function removeSpecialCharacter(str) { const removeCharacters = ['#', '_', '*', '~', '&', ';', '!', '[', ']', '`', '>', '\n', '=', '-'] let _str = ..
-
리액트 성능 최적화 기법 1 - 이미지 최적화Web/React.JS 2022. 10. 27. 23:36
이미지 최적화란? 뷰어에게 보여지는 이미지의 품질은 훼손시키지 않으면서 동시에 가능한 작은 크기의 이미지를 제공하는것 가능한 작은 이미지를 제공하여 사용자가 이미지 로드를 기다리는 시간을 줄일 수 있다. 또한 적절한 alt 요소를 사용하는것도 이미지 최적화로 볼 수 있다. 1. img 태그 사용하기 .thumb{ background-image: url("thumb.png") } img 태그를 적절하게 사용하면 스크린 리더기와 같은 보조기구에 더 인식이 잘되며 SEO 최적화에 도움이 된다. 2. 이미지의 크기를 적절하게 조절하기 html에서 img 태그는 본인의 width, height 픽셀의 2.4배정도 표현 할 수 있다. 예를 들어 100x100 img 태그에 1200x1200 이미지를 사용하나, 24..