✏️기록하는 즐거움
article thumbnail
[AWS] AWS Lambda + S3 연동해서 파일 가져오기
Programming 2023. 11. 15. 23:26

포트폴리오 사이트를 개발할 때 포트폴리오에 들어가는 내용을 마크다운 파일로 가져와 사이트에서 보여주고 싶었다. 기존에는 express 서버로 파일 시스템(fs) 모듈을 가져와서 사용했지만, 이는 로컬에서만 동작하고 있었고 배포를 위해서는 AWS EC2를 사용하는 방법이 존재했다. 하지만 나에게는 마크다운 파일을 가져오는 HTTP GET 메서드만 필요했고 EC2 배포는 부담스러운 선택지였다. 이 때 찾아낸 것이 AWS Lambda와 S3를 연동하여 사용하는 방법이다. 오늘은 프론트엔드 입장에서 처음 AWS를 맞이했을 때 당황하며 해결해낸 과정을 작성해보려 한다. 💡 AWS Lambda란? AWS Lambda란 AWS에서 제공하는 서버리스 컴퓨팅 플랫폼이다. (서버리스 학습 TIL) 별도의 서버 구성 없이 ..

article thumbnail
[Vuepress] Vuepress 설치부터 배포 자동화 적용하기
Programming 2023. 9. 19. 04:21

평상시 노션에 공부한 내용을 정리하며 티스토리에 옮기는 편인데 기존에 노션을 사용하면서 글자 지워짐 현상, 티스토리에 마크다운으로 옮기기 어려운 문제 등이 지속되면서 이전에 Github Star를 눌러두었던 유림님의 TIL이 생각났다. 처음에는 얼핏 봤을 때 GitBook으로 만들어졌구나! 하고 넘어갔었는데 오늘날에서야 코드를 보니 VuePress로 만들어진 것을 확인할 수 있었다. 💡 VuePress? Vue 기반 정적 사이트 생성기 Vue를 기반으로 GitBook과 같이 문서화, 블로그 등에 많이 쓰이는 라이브러리였다. GitBook으로 알고 있던 사이트들이 VuePress 였었다는 것에 정말 관심을 가지지 않았구나 싶었다..😅 npmtrends에서 확인해보니 GitBook 보다는 VuePress가 ..

article thumbnail
[React] 상품/장바구니 수량 조절 기능 구현하기
Programming 2023. 6. 9. 12:00

🔍 기능 미리 보기 ✨ 구현할 기능 +/- 버튼으로 수량 조절하기 1개 보다 작거나, 재고 보다 큰 수량을 입력할 수 없게 예외처리 하기 에 값을 입력하여 수량 조절하기 1️⃣ 버튼으로 수량 조절 자식 컴포넌트의 구성 요소인 버튼으로 수량을 조절하여 부모 컴포넌트가 가지고 있는 수량과 가격에 대한 상태 값을 변경하고 싶다면, 해당 상태들을 변경할 수 있는 함수를 자식 요소인 QuantityInput의 props로 전달하여 QuantityInput에 있는 button의 이벤트 핸들러로 추가해주면 된다. // ProductInfo.jsx export default function ProductInfo({ product }) { const [quantity, setQuantity] = useState(1); ..

article thumbnail
[HTML/CSS] 오늘 내 사자는? - 웹 접근성과 성능을 고려하여 TIL 기록 페이지 리팩토링하기(1)
Programming 2023. 5. 15. 22:48

🔍 프로젝트 미리보기 💠 Lighthouse 점수 분석하기 - 기존 Lighthouse 점수 Performance OPPORTUNITIES 리소스 관점에서 웹 페이지의 더 나은 성능을 위해 어떤 점을 개선시킬 수 있는지 제안해준다. 즉, 로딩 성능을 개선하는 방법을 제시한다. Reduce unused JavaScript 추후 JavaScript 기능을 넣기 위해 코드를 미리 세팅해두었더니 사용되지 않는 JavaScript 코드를 삭제하라며 성능 점수를 떨어트렸다. DIAGNOSTICS 페이지의 실행 관점에서 개선할 수 있는 방법을 제시한다. (⇒ 렌더링 성능) Serve static assets with an efficient cache policy 정적 리소스는 캐시를 사용하라는 의미로, 변화 주기가 ..

article thumbnail
#031. 정규 표현식 살짝 맛보기😵‍💫
Retrospective/LikeLion 2023. 5. 15. 01:47

정규 표현식? 들어는 봤는데 .. 정규 표현식, 또는 정규식은 문자열에서 특정 문자 조합을 찾기 위한 패턴이다. JavaScript에서 정규 표현식 또한 객체로 RegExp 의 메서드인 exec(), test() 뿐만 아니라 String의 match(), matchAll(), replace(), replaceAll(), search(), split() 메서드도 사용할 수 있다. 정규 표현식 만들기 리터럴 표기법 리터럴 표기법의 매개변수는 따옴표를 사용하지 않고, /pattern/flags의 순서로 작성한다. const reg = /FE-DEV/g; 리터럴 표기법은 표현식을 평가할 때 정규 표현식을 컴파일한다. 반복문 안에서 사용할 정규 표현식을 리터럴 표기법으로 생성하게 되면 정규 표현식을 매번 다시 컴..

article thumbnail
[JS] <progressbar>를 사용하여 설문지의 진행도를 구현해보자!
Programming 2023. 4. 29. 21:15

🔍 설문조사 폼 HTML구조 파악하기 JS 스터디 모집 설문조사 설문지를 작성하세요! 질문 1. 무엇을 가장 배우고 싶으세요? 질문 2. 시간은 언제가 적당한가요? 질문 3. 몇 시간정도 예상하세요? 질문 4. 난이도를 조정한다면? 질문 5. 끝으로 하고싶은 말이 있나요? 제출 초기화 설문지 폼은 사용자에게 입력을 받고, 입력 받은 내용을 서버로 제출하는 목적을 가지고 있기 때문에 요소로 구성되어 있다. 요소로 사용자에게 질문에 대한 응답을 입력받고 있고, 요소를 사용하여 입력창과 연결시켜 스크린 리더와 터치스크린 사용자에게 좋은 UX를 줄 수 있다. 요소는 form과 같은 양식 요소를 그룹화 할 수 있다. 요소로 그룹의 설명을 제공할 수 있어서 해당 콘텐츠가 어떤 목적 혹은 주제를 가지고 있는지 나타낼..

article thumbnail
#028. DOM을 내 맘대로 제어하고 이벤트 발생시키기💥
Retrospective/LikeLion 2023. 4. 17. 23:21

😎 오늘의 잘한점 액션 해결하지 못한 과제를 포기하지 않고 해결해 낸 것! 칭찬 풀리지 않는 것이라고 포기한 채로 두지 않았다니 또 한 번 성장했다는 것을 느꼈다. 예전이었다면 주어진 시간 내에 풀지 못해 부족한 사람이라고 자책하고 있었을 텐데 요즘에는 내가 제어하지 못하는 것이 아닌 제어할 수 있는 것에 초점을 두는, 생각의 전환을 할 수 있는 내가 되어 간다는 점이 뿌듯했다😀 ✔️ 오늘의 개선점 문제 풀 수 있는 문제였음에도 제한 시간 내에 문제를 풀지 못하였다. 원인 문제를 파악하고 구현하는 것보다 효율적인 코드를 작성하는 것을 우선순위로 생각하면서 문제를 푸는 시야가 좁아졌다. 액션 플랜 효율적인 코드를 작성하는 것도 물론 중요하지만 100% 완벽한 코드는 없다고 했다. 80-90% 정도의 코드를..

article thumbnail
[Git] 현재 레파지토리가 아닌 다른 레파지토리로 이사시켜줘!
Git | Github 2023. 4. 12. 22:57

들어가기에 앞서 멋쟁이사자처럼 5기를 같이 참여하고 있는 분께서 Git 오류에 대해 도움을 요청해 주셨다. 예전에 경험해 봤던 문제이면서 Git의 동작 과정을 다시 한번 정리해 볼 수 있었기에 해결한 과정에 대해 기록해보고자 한다. 🚚 현재 레파지토리(Repository)에서 새로운 레파지토리로 파일 이동하기 현재 레파지토리에 있는 파일들을 다른 레파지토리와 합치고 싶다면 어떻게 해야 할까? 우선 나의 컴퓨터에 있는 폴더 즉, 로컬 환경에 있는 폴더와 연결된 remote를 옮기고 싶은 새로운 레파지토리와 연결시켜주어야 한다. 💡 여기서 Git의 remote란 무엇일까? 쉽게 얘기하자면 내 컴퓨터에 있는 폴더와 원격 저장소를 연결시켜 주는 명령어이다. 많은 사람이 사용하고 있는 Github는 Git을 기반..

article thumbnail
#027. DOM과 마주친 날, 누구셨더라...?
Retrospective/LikeLion 2023. 4. 12. 02:06

😎 오늘의 잘한점 액션 DOM 클래스를 제어하는 실습 문제를 풀 때 어떻게 하면 코드량을 줄일 수 있을지 고민하여 작성했다. 칭찬 모든 button을 선택해서 이벤트 리스너를 추가하고, 클래스 이름을 추가하는 부분이 반복되는 것을 깨달았다. 따라서 반복문과 slice를 사용해서 코드를 간략하게 만들었고, 수업 시간에 이를 공유했다😀 단순히 코드를 작성하는 것 뿐만 아니라 메서드나 반복문이 사용되는 원리를 알게되니 응용하기가 수월했다. 빨강 노랑 초록 ✔️ 오늘의 개선점 문제 DOM 클래스 제어 실습에서 예외 상황을 처리하지 못했다. 원인 button의 click 이벤트 리스너에 box.classList.toggle("클래스명")을 하게 되면 다른 button을 클릭했을 때 기존의 class명이 남아있게 ..

article thumbnail
#019-026. 눈 감았다 떴더니 지나버린 6주차
Retrospective/LikeLion 2023. 4. 9. 22:47

😎 이번 주의 잘한점 액션 이번 주에 세워놨던 우선 순위에 따라 최대한 해야할 일을 처리하고자 했다. 토이 프로젝트를 리팩토링 하면서 알게된 점 정리하기 칭찬 침대에 눕고 싶을 때가 정말 정말 많았지만, 해야할 일을 하기 위해 계속 앉아있던 점 칭찬해ㅠㅠ 확실히 우선 순위를 정해서 일을 처리해나가니까 못했던 일이 생기더라도 마음의 불편함을 덜 가질 수 있었다. 계획했던 일을 다 하지 못했더라도 자책하지 않고, 어제보다 성장한 내가 됐다는 것에 뿌듯함을 느꼈다는게 가장 포인트인 것 같다! 다른 사람과의 비교보다는 나와의 싸움에서 이겨내야한다. 앞으로도 잘 이겨보자구🔥 ✔️ 이번 주의 개선점 문제 자바스크립트를 생각보다 깊이 있게 알지 못했다😂 원인 단순히 코드를 작성하고 동작시키는데에만 급급했던 것 같다...