전체 글 17

10분 만에 웹사이트에 PWA 적용해서 웹앱 만들기!

사실 처음 붙잡았을 때는 오류 해결하느라 1시간 정도 걸렸고, 글로 정리해서 작성하는 데는 미루다 일주일 넘게 걸렸다... 그래도 manifest.json 등록하는 것은 정말로 금방 할 수 있다!!PWA란?Progressive Web Apps 의 약자로 브라우저 기반의 웹을 앱처럼 바로 설치해서 사용 가능한 기술이다.윈도우라면 윈도우 프로그램처럼 설치되고 작업 표시줄에 등록도 가능하고, 모바일이라면 진짜 별도의 앱처럼 설치된다.브라우저에서 제공하는 기능이고, 캐시 정보 등은 브라우저에 저장되면서 설치되는 듯하다.아직까지 한글 정보는 많이 없고 설명이 적어 MDN 공식 문서가 가장 좋았다. MDN 문서 중에서도 번역되지 않은 부분이 많아 나중에 기여해보면 좋을 것 같다.https://developer.mo..

[우아한테크코스 7기] 프리코스 1주차 회고 - 프론트엔드

프리코스 참가와 1주차우아한테크코스에 한 번은 도전해보고 싶다고 생각하던 차에 동아리에서 하는 사람들도 많이 보여서 같이 스터디하며 성장히기 위해 지원했다.다른 부트캠프들과 다르게 프리코스를 다함께 풀어나가면서 더 좋은 코드에 대해 고민할 수 있는 시간을 가질 수 있다는 것이 좋아 보였다. 하지만 그만큼 시간이 많이 들어서 학기와 병행하는 건 매우 힘들다..자기소개서 작성프로그래머가 되려는 이유와 지원 동기 2000자오랜 시간 몰입했던 경험 그리고 도전 2000자프리코스 목표 설정 1000자도합 5000자에 달하는 자소서를 쓰면서 생각보다 글로 녹여내 쓸만한 경험이 많이 없다는 것을 느꼈다. 블로그를 좀 더 열심히 쓰면서 글을 많이 모아두어야겠다.요구사항요구사항은 기능 요구사항, 입출력 요구 사항, 프로..

대외활동 2024.10.30

인프런 판교 퇴근길 밋업 with 개발바닥 참여 후기

소개인프런에서 주기적으로 크게 진행하는 행사인 판교 퇴근길 밋업에 드디어 선정되어 다녀오게 되었다!! 아직 학부생인데도 선발되어 정말 감사했고 좋은 경험이었다. 가서 보니 최종 지원자가 713명이었고 이 중 100명에 선발된 것!특히 이번엔 블로그와 링크드인 통해서 알고 있었던 인프랩 CTO 향로님과 개발바닥 유튜브 운영하시는 호돌님이 진행하신다 해서 큰 기대를 안고 갔었다. 일정은 개발바닥의 고민 상담 이후 식사하며 네트워킹 순서로 진행되었다.이번에는 특정 주제가 있는 것이 아니라 다양한 개발자 분들의 고민을 미리 신청할 때 받아 10개를 추려 향로님 & 호돌님이 직접 답변해주는 방식이었다.그런데 두 분 다 오랜 개발 경력 동안 쌓인 게 많으셨는지 답변을 진짜 줄줄이 계속 해주셔서 10개 중 6개밖에 ..

React Component와 객체지향의 차이에 관하여

소개글과연 객체지향, OOP에서 말하는 객체와 React Component를 동일선 상에 놓고 봐도 되는가?KUIT 교내 개발 동아리에서 WEB 파트장을 하다 이런 질문을 받게 되었다. 좋은 질문을 남겨준 이름 모를 부원 분께도 감사하며, 파트장을 하며 오히려 알아가는 것이 많아 힘들지만 재밌다.지금까지 받은 질문 중에서 가장 많이 찾아보고 고민했음에도, 아직까지 스스로 명확한 답을 내리지 못한 상태이다. 이 질문 덕에 React 공식 문서부터 각종 번역본, React 개발자 분의 블로그(overreact)까지 탐독하게 되었다.(이 글을 읽는 다른 개발자 분들의 의견도 매우 궁금한 상황이고 틀린 내용이 있다면 꼭 댓글 달아 주시면 정말 감사하겠습니다!!)JS Deep Dive 책을 다 읽고 이해한다면 더..

Fixed Menu, 메뉴 바 상단 고정 구현 시 content에 margin-top을 주면 위험한 이유 (feat. margin collapsing)

소개KUIT 교내 개발 동아리에서 WEB 파트장을 맡아 운영 중이다. WEB 파트 부원들에게 준 2주차 미션이 당근마켓 화면 HTML, CSS로 클론코딩하기였다.미션 결과물 코드리뷰를 하다 좋은 질문들이 많이 나와 공부가 많이 되었는데, 그 중에 fixed menu, 메뉴 바 상단 고정 구현 할 때 menu bar 아래 content에 margin-top을 주면 위험할수도 있겠다는 생각이 들었고, 그 이유에 대해서도 많이 찾아보게 되어서 글을 써보았다.질문코드와 함께 보는 것이 편할 수도 있을 것 같아 추가한 github discussion 주소이다.만들고자 하는 화면은 아래 이미지처럼 당근마켓의 한 화면을 구현하되, 스크롤을 내려도 맨 상단 바가 항상 위에 고정되도록 하는 것이었다. 일반적인 블로그나 ..

블로그에 대한 사견

블로그 글은 일단 쓰고 공개하는 것이 중요하다.항상 생각하지만 정말 실천하기 어렵다.블로그를 위한 노력들을 돌이켜 보면 첫 시작은 네이버 블로그였다. 2021년쯤 한창 개발자 열풍이 불고 기술블로그를 너도나도 하는 시기에 개발 공부와 함게 시작했었고, 지금 보니 글을 140여개나 올렸었다. 이걸로 군대 면접 때 쏠쏠히 써먹었지만 입대하고서는 버려졌다..이때도 네이버 블로그가 마크다운을 지원 안 하는 것 때문에 노션 글을 옮기기가 너무 불편해서 github blog를 직접 만들려다가 마음에 안 들어서 테마 가져오고 뒤엎고를 반복했었다.그러다 velog도 써봤는데 마크다운 인식은 가장 잘 해주지만 테마 자유도가 떨어지고 기능이 아직 많이 없는 데다 이미지도 복붙이 안 되는 문제 때문에 tistory로 넘어오..

Asrock H110M-HDV 보드 + Linux Ubuntu 22.04 WOL (wake on lan) 설정하기

1. Asrock H110M BIOS 설정2. Ubuntu 22.04 WOL 설정안 쓰는 컴퓨터에 우분투를 깔아서 홈서버를 만든 적이 있다.문제는 24시간 동안 켜 놓으니 전기세나 발열은 둘째 치더라도 소음이 너무 커서 잠자기 힘들어서 해결할 방법을 고민했었다. 물론 구형 HDD에 구형 쿨러를 쓰는 탓도 있겠다.1. 쿨러교체 + HDD를 SSD로 교체, M.2 NVMe to SATA converter가 필요2. 본체를 바깥으로 빼고 벽단자 잘 찾아서 공유기 연결하기 or 선을 길게 빼기3. WOL 설정하고 필요할 때만 켜서 쓰기 or 취침 시간에 자동 종료, 자동 켜지게 구성하기1번은 소음 크기는 줄일 수 있어도 소음 자체는 줄이지 못하고, 2번은 사용 중인 것을 제외하고 살아 있는 벽단자가 없었다. 블..

[JavaScript, Node.js] 프론트엔드(JavaScript Runtime)에서의 Race Condition

JS와 관련해서 흥미로운 사실을 찾았다. 시스템프로그래밍이나 OS 수업에서 한 번쯤 들어봤을 race condition이 프론트엔드에서도 발생할 수 있다는 것이다. Race Condition? race condition은 두 개 이상의 프로세스, 스레드가 공유되는 자원(critical section)에 접근해서 값을 쓰려고 할 때 발생한다. race condition이 발생하면 공유 자원의 값이 의도치 않게 변경되는 문제점이 생긴다. 백엔드에서의 레이스 컨디션은 실제 바뀐 값으로 권한 상승 등이 일어날 수 있어 CTF에서도 종종 출제되고 보안적으로 상당히 심각하게 다뤄지는 문제이다. 반면 프론트엔드에서는 보여지는 화면만 바뀌는 것이니 그렇게까지 위험하지는 않을 것 같고, Race Condition이 발생..

정주영 창업경진대회 13 (정창경13) 설명회 후기 - 디스콰이엇 박현솔 대표님, EO 김태용 대표님 강연 내용 정리

창업에 적극적인 친구 덕에 24.04.01에 마루180 지하에서 진행된 정창경 설명회에 가게 되었다. 디스콰이엇과 EO의 존재를 원래 알고 이용하면서 어떤 생각으로 이런 서비스를 만들었을지 정말 궁금했었는데 이번 기회에 관련된 이야기를 들을 수 있어 좋았다. 기대보다 큰 울림과 인사이트를 얻었고, 웹 상에서 떠도는 창업 관련 글보다 더 구체적이었다. 실제로 실패를 겪으며 여러 시도 끝에 성공한 창업가 분들 자신의 경험담을 직접 듣는다는 것의 의미가 컸다. 1부 디스콰이엇 박현솔 대표님 메이커들의 막막함을 해결하기 위해 디스콰이엇을 만들었다. 창업을 위해 필요한 요소 4가지 시장에서 간과되는 문제 내가 진정성을 느끼는 문제 타깃 유저 접근성 (타깃 유저가 우리 서비스를 쉽게 접근할 수 있어야 한다) 개발력..

[KUIT 3기 Web] 2주차(5 - 完) - 당근마켓 화면(CSS) 클론 하기 및 트러블 슈팅

2주차 과제는 주어진 피그마대로 당근마켓 화면1을 기본 HTML + CSS로 동일하게 구현하기였다. git repo fork 후 github pages로 배포해서 화면을 확인할 수 있게 했고, 결과물은 다음과 같다. 미션 결과물-당근마켓 화면1 링크 트러블 슈팅 해당 과제를 하면서 겪었던 이슈와 해결 방안은 다음과 같다. Issue 1 문제 상단 header가 고정이 안되어서 fixed로 고정했다. 그런데 fixed로 고정한 다음, header에 width 100% 를 주면 header가 화면보다 조금 커져서 화면 밖으로 튀어나간다?!?!?! 특히 → display: flex; justify-content: space-between; 해당 속성일 때 튀어나간다. 이 문제도 box-sizing: borde..