본문 바로가기

분류 전체보기

(60)
개발자가 도메인 지식을 알아야 하는 이유 도메인 지식이란, 말 그대로 '내가 만들고 있는 서비스가 속한 분야에 대한 이해'다. 의료라면 진료 프로세스와 관련 법규, 금융이라면 각종 규제와 시장 구조, 게임이라면 유저 행동 패턴과 수익 모델 같은 것들이 여기에 해당된다고 생각한다. 기술 스택과 달리 이런 지식은 하루아침에 생기지도 않고, 한 번 익히면 오래가지만 바뀔 때는 큰 변화를 가져온다고 생각한다. 개발자라면 당연 개발을 할 줄 알아야 한다. 언어 문법, 알고리즘, 최적화 등등 이런 것들은 개발자에게 당연 중요하게 작용한다. 하지만 실제 프로젝트, 특히 스타트업처럼 빠른 실행과 검증이 중요한 환경에 들어가면 플러스로 도메인 지식이 딸려온다. 도메인 지식이 없으면, 기능은 구현했는데 서비스는 전혀 가치를 얻지 못하는 상황이 아주아주 많이 벌어..
정수형 자료형, 왜 이렇게 많을까? short, int, long, long long ... 처음 C언어나 C++같은 언어를 배울 때 정수형 자료형에 대해서 배운다. 다 비슷해 보이는데 이름은 왜 이렇게 많은건지, 그냥 int하나만 써도 되는 거 아닌가? 라는 생각도 들었었다. 실제로 처음에는 INT를 쓰는 거 외 다른 자료형은 쓸 일이 없기도 했다. 간단한 문제를 풀거나 작은 프로그램을 짤 때는 대부분 int만 써도 큰 문제가 생기지 않는다. 하지만 프로그램이 커지고, 다루는 데이터가 많아질수록, 그리고 메모리 사용량이나 성능이 중요해질수록 자료형 선택이 많은 영향을 미친다. 단순한 문법이 아니라, 효율적이고 좋은 프로그램을 만들기 위해 설계 과정에서 고려해야할 요소라는 걸 이 글에 넣어서 작성해보려 한다. 왜 정수형이 여러 개일까?컴퓨..
알아두면 좋은 자료형 기초 이론 처음 대학교에서 프로그래밍을 배우면 변수나 자료형부터 배우지만, 그보다 먼저 이해해야할 개념이 있다. 바로 "비트(bit)와 바이트(byte)"다. 요 두 개가 컴퓨터가 어떻게 데이터를 저장하고 처리하는지를 이해하는 데 있어서 가장 기초이자 필수적인 요소라고 생각한다. 이전에 '파일 업로드의 원리'라는 주제로 글을 쓰면서 느꼈었지만 그것보단 최근 일을 할 때 동료(시스템 기획 11년차) 가 데이터 테이블을 액셀에 짜왔을 때 강하게 느낄 수 있었다.(글쓰니는 이번년도에 졸업한 1년차지만, 편의상 같이 일하는 모든 사람을 동료라고 칭하겠다)액셀 함수를 이용해서 테이블 구조를 설명하고 만들어진 공통된 파일 템플릿이 있었는데, 대충 이런 구조다. 액셀 시트 하나가 테이블이라고 가정하고 봐야한다.컬럼 한글 설명e..
프론트엔드 개발자에게 마케팅 지식이 도움이 될까? 요즘 하려고 준비하는 일이 마케팅과 크게 연관이 되어 있다. 때문에 업무를 볼 때 마케팅 섹션 같은 시간을 가지는데, 처음에는 ROI가 뭔지 CPA가 뭔지 잘 이해가 가지 않았다. 그래서 제대로 한 번 찾아보면서 다시 리마인드의 시간을 퇴근 후에 가지게 되었는데, 리마인드 하면서 정리한 생각과 내용을 작성해보려 한다. 프론트엔드 개발자에게 마케팅 지식이 정말 필요할까? 처음에는 저 질문에 대한 답이 '그렇지 않다'라고 생각했었다. 솔직히 "개발자는 개발만 열심히 하면 되는 거 아니야? 크게 신경 안 써도 되겠지"라고 까지 생각했었다. 하지만 그건 R&R이 뚜렸한 큰 기업에서나 해당되는 이야기지, 내가 몸 담그고 있는 스타트업 업계는 R&R의 경계가 조금은 희미해지기 때문에 나에게는 개발을 위한 이해도가 ..
react-dropzone으로 드래그 앤 드롭을 통한 파일 업로드 구현하기 파일 업로드 기능은 웹 서비스에서 자주 사용되는 기능이다. 특히 드래그 앤 드롭 (Drag & Drop)해서 업로드 할 수 있도록 만들어진 경우가 많다. 이런 기능은 요즘 자주 쓰이는 ChatGPT나 Claude같은 AI 툴에도 당연하게 들어가는 기능이다. 그래서 이번에는 React에서 오픈소스 라이브러리인 'react-dropzone'을 사용하여 이를 구현했던 경험을 적어보려고 한다. 클론코딩 프로젝트를 할 때 사용해보고 따로 더 학습해본 내용을 최대한 상세하게 남겨놓을 생각이다. react-dropzone 오픈소스react-dropzone은 React 환경에서 드래그 앤 드롭, 파일 업로드 UI를 빠르게 구현할 수 있도록 도와주는 라이브러리다. 내부적으로는 HTML5 Drag & Drop API와 F..
Shell과 Prompt는 뭘까? 우리는 보통 컴퓨터를 켜고 마우스로 프로그램을 실행한다. 음악을 틀기 위해 Apple Music을 열고, 문서를 작성하기 위해 한글을 열고, 인터넷 브라우저를 띄우는 일을 매우 자연스럽게 행하고 있다. 이런 게 너무 당연하게 느껴지기 때문에 눈앞에 보이는 '인터페이스'가 전부인 것처럼 보인다. 하지만 컴퓨터가 사용자 입력을 실제로 처리하고 실행하는 데에는 그보다 훨씬 더 깊은 구조가 있다. 운영체제는 하드웨어와 소프트웨어 사이를 이어주는 중재자 역할을 한다. 우리가 누르는 버튼 하나, 입력한 명령 하나조차 OS를 통해 해석되고 처리되어야 결과가 화면에 나타나는 것이다. OS의 역할운영체제는 사용자가 설치한 수많은 프로그램들 사이에서 누가 실행되고, 어떻게 메모리를 쓰고, 어떤 파일을 열 것인지 조율하는 ..
오픈소스? 라이선스? 이게 뭘까? 최근에 리눅스 기초 강의를 듣고 있었다. '오픈소스에도 라이선스가 있다'라는 제목의 유튜브 강의였는데, 지금까지 1년정도 개발을 하면서 오픈소스가 뭔지, 라이선스가 뭔지에 대해서 제대로 알아보려고 했던 적은 없는 거 같았다. 게다가 Github에서 MIT, Apache 2.0 같은 라이선스를 표기해놓은 걸 본 적이 많았는데 왜 한 번도 알아보려고 하지 않았는지 의문이 생겼다. 그래서 이번 기회에 공부를 좀 하고 글을 남기기로 했다. 다음은 참고영상이다. 오픈소스?오픈소스란 소스 코드가 공개되어 있는 소프트웨어를 말한다. 단순히 코드가 깃허브에 올라가 있는 걸 넘어서, 누구나 내려받아 보고, 수정하고, 재배포까지 할 수 있도록 허용된 것이다. 단, 그 사용 조건이 따로 정해져 있다. 바로 이 조건을 ..
Linux는 어떻게 탄생하게 되었을까? 강의를 쭉쭉 듣는다. 리눅스를 공부하려고 했더니 탄생 과정부터 알아가는 중이다.. 이게 도움이 되려나 싶었는데 생각보다 도움이 많이 되는 거 같은 느낌이 든다. 일단 쭉 듣고 학습해보자."5강: 오픈소스 유닉스의 탄생" by youtube '뉴렉처' 지난 글에서는 유닉스가 어떻게 만들어졌고, 어떤 구조로 개발되었는지를 작성해보았다. 이번 시간에는 그 유닉스로부터 리눅스가 어떻게 탄생하게 됐는지를 작성해보려고 한다. 서버 중심 구조의 시초UNIX는 Work Station에 설치되고, 사용자는 단말기(terminal)를 통해 원격 접속하는 구조다. 여러 사용자가 동시에 자원을 공유하면서도 각자 독립된 작업 환경을 갖게 된 것이다. 그럼 이런 UNIX로부터 어쩌다 Linux가 만들어진 것일까? 유닉스의 상..