전체 글 15

인프런 판교 퇴근길 밋업 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..

[KUIT 3기 Web] 2주차(4) - CSS 우선순위, CSS 작명법 BEM(Block Element Modifier), svg 작명법, 추가 내용

CSS class name 이름 짓는 법인 BEM 규칙은 이번에 처음 알게 되었다. 지금껏 정해진 className을 쓰면 자동으로 style을 맞춰주는 tailwind, bootstrap 이나 react에서 자동으로 class name을 만들어주는 CSS Module을 자주 써왔어서 접할 기회가 없었던 것 같다. 추가로 svg 작명법까지 찾아서 정리했다. CSS 우선순위 !important( 예시: .title-box{color: red !important;} inline(HTML에서 style을 직접 지정했을 때) id 선택(#id) class명(.class) HTML 태그(예시 : h3) 상위 Element의 속성 CSS 작명법 BEM(Block Element Modifier) CSS 작명법 BEM..

[KUIT 3기 Web] 2주차(3) - CSS positioning, 원하는 위치에 요소 배치하기

1) static position 속성의 기본값. 요소를 나열한 순서대로 배치. 원하는 위치에 콘텐츠를 배치할 방법 없음. 콘텐츠를 왼쪽에서 오른쪽으로 추가하다가, 오른쪽에 공간이 없을 경우 다음 줄로 넘겨서 순서대로 배치한다. 2) relative static과 같이 나열한 순서대로 배치되지만 top, right, bottom, left 속성을 사용해 원하는 위치를 지정할 수 있다. 이때 좌표값은 static 기준으로 위치한 곳이 (0px, 0px)이 된다. 지정한 속성에 따라 상/하/좌/우 원하는 자리에 배치하는 것이 가능 하다. 3) absolute top, right, bottom, left 속성값을 이용해 요소를 원하는 위치에 배치할 수 있다. 기준 위치는 position 속성이 relative..