본문 바로가기

전체 글

(39)
Clean Code Clean Code 살짝 오랜만에 글을 쓰는 느낌입니다. 변명을 하자면 최근에 여러모로 참 바빴습니다.. 진짜로요.. 그런 의미에서 이번 편에서는 약간의 주관이 들어간 Clean Code 에 대해 소개하고자 합니다. 물론 아직 저는 경력이 그리 길지도 않을 뿐더러 다양한 개발자들과 협업을 해봤다기엔 살짝 애매하기도 하지만, 그래도 제가 느낀 협업하기 좋은 코드란 무엇인지 소개하려고 합니다. 저의 블로그 카테고리 중 개발상식 코너는 사실 프로그래밍을 막 시작하신 분들이나, 시작하고자 하는 분들을 위한 것이기에 약간 이 주제가 어울리나 싶지만,, 그래도 그냥 제 마음대로 소개해 보도록 할게요. 서론이 길었네요. 바로 시작해 보도록 하지요. 협업 사실 개발자에게 있어 협업이란 빼놓을 수 없는 단어인 것 같아요..
Architecture 소프트웨어 아키텍처 소프트웨어 아키텍처는 시스템을 개발하는 것에 있어서 매우 중요한 요소입니다. 사실 이 부분에 대해서는 아직 경험이 많지 않은 제가 정의하기에 부족함이 많겠지만요. 그래도 처음 이 단어를 접하시는 분들에게 작게나마 도움이 되고자 글을 쓰겠습니다. 이렇게 중요한 만큼 개발에 대해 공부한다면 모두가 한번쯤 들어봤을 단어이기도 하지요. 아키텍처에 대해서 한마디로 정의하기 어렵습니다만 최대한 쉽게 설명하자면 아키텍처란 시스템 구성 요소에 대한 설계 및 구현을 지원하는 거대한 설계도 라고 보면 되겠습니다. 물론 위의 한 문장으로는 설명이 부족합니다만 이 카테고리에서는 간단하게 개념을 전파하는 목적을 가졌으므로 이정도로 간단하게 설명하도록 하겠습니다. 건물을 짓는데 있어 설계도가 부실하다면 많이 ..
Interface Interface Programming에서 Interface란 어떠한 것에 대한 틀을 의미합니다. 건물을 짓는데 기둥이 없으면 곤란하겠죠. 특히 꼭 있어야 하는 기둥이 없다면 식은땀이 날 것입니다. 이러한 것처럼 Software에서도 Interface에 있는 틀은 꼭 구현을 해야 합니다. 이러한 강제성을 부여한다는 의미도 있겠지만 설계를 할 때에도 큰 도움이 됩니다. 예를 들어 협업 과정에서 개발자의 실수로 어떠한 기능을 구현하지 않으면 처음 설계한 것과 다른 결과물이 나오거나 이러한 누락되어 구현하지 않은 기능을 찾기까지 꽤 큰 공수가 들겠지요. 이러한 개발자의 휴먼에러는 개발하는 입장에서 굉장한 스트레스입니다. 이러한 휴먼에러를 줄이고자 본인에게 잘 맞는 IDE를 선택하기도 하지요. 이처럼 Inter..
2023-10-06 회고록 머릿말 2022.02부터 2022.05까지 짧은 3개월의 개발과, 중간 공부하는 시간을 지나 2022년 11월부터 현재까지 총 1년 조금 지나는 시간동안 개발세계에 발을 담고 있습니다. 돌이켜 보면 지금까지 우여곡절 끝에 마침내 제가 가야할 개발 방향이 무엇인지 조금이나마 알 것 같습니다. 마음에 확신이 선 지금 블로그 오픈 이래 한 번도 작성하지 않았던 회고록을 작성하기에 가장 최적의 시기라 판단하여 이렇게 글로나마 남겨 봅니다. 제 머릿속에 있는 모든 생각이 완벽하게 정리가 된 것이 아니기에 약간의 횡설수설함이 느껴질 수 있겠지만 현재 저의 생각을 기록하는데 의의를 두도록 하겠습니다. 2022 ~ 2023.현재 2022.02 거의 학부 졸업과 동시에 비교적 빠르게 취업을 했습니다. 나름 학교에서는 성..
객체지향 프로그래밍 OOP - 객체지향 프로그래밍 객체지향 프로그래밍, 함수형 프로그래밍, 절차지향 프로그래밍 등등 참 다양한 프로그래밍 방법론이 있습니다. 그 중에서도 이번에는 객체지향 프로그래밍에 대해 간단하게 다뤄 보도록 하겠습니다. 객체지향 프로그래밍을 쉽게 설명하자면 개발자가 실제의 사물을 추상화하여 추상화한 대상(객체)를 개발 언어로 옮겨 작업하는 것을 의미합니다. 뭔가 설명이 모호할 수도 있겠습니다만 여기서 중요한 것은 추상화라는 것입니다. 보통 개발자에게 추상화라는 것은 만들고자 하는 시스템에서 공통적인 부분들을 추려내고 이러한 것들을 어떻게 설계하면 좋을지 풀어내는 것을 의미합니다. 이렇게 추상화 단계를 거치면 대상이 취하는 동작 또는 대상이 가지고 있는 속성과 같은 것들을 추려 낸답니다. 이렇게 거르고 걸..
Container Container Container란 보통 문자 그대로 무언가를 담고 있다는 의미입니다. 소프트웨어에서 컨테이너란 보통 어떠한 모듈과 같은 것들을 담고 있는 것을 통틀어 Container라고 표현 합니다. 대표적인 예시로 배포를 할 때 웹 소스 및 DB를 하나의 Container에 담아 배포를 합니다. 이러한 개념은 보통 DevOps를 개발하시는 분들 사이에서 사용하는 Container의 의미 입니다. 하지만 FrontEnd에서도 Container라는 용어를 사용하곤 하지요. 또한 BackEnd에서도 Container라는 용어가 사용되는 부분도 있지요. 물론 조금씩 서로 다른 의미 이겠지만요. FrontEnd, BackEnd에서 말하는 Container의 개념을 하나씩 천천히 알아 보도록 하겠습니다. F..
JavaScript Functional Programming [ pipe ] 함수형 프로그래밍 사실 뭐 함수형이니 객체 지향이니 .. 뭐 요즘 말이 많은데 주로 내가 Project할 땐 가려서 쓰지 않는 느낌이다. 작업을 진행할 때마다 느끼는 거지만 장단점이 있는 느낌..? 근데 함수형 프로그래밍으로 여러 Util 함수들을 만들어 놓고 작업을 진행하는 경우가 많으므로 자주 사용하는 함수에 대해서 정리도 하고 기록도 하고 일석이조 아니겠는가. 보통 개인 Git에 올린 유용한 Util 함수들을 프로젝트를 진행할 때마다 만들어서 사용하곤 하는데 꽤 유용한 것들 중에서 pipe함수에 대한 포스팅 하겠다. Pipe 이름에서도 느껴지지만 뭔가 실제 파이프처럼 연결된 그런 느낌적인 느낌이 드는데,,, 대충 요약하자면 여러 함수들을 합쳐서 하나의 함수로 만든 뒤 반환해주는 느낌적인 느낌이 있는..
Request body validation middleware 회사에서 FrontEnd 뿐만 아니라 BackEnd 작업도 많이 한다, 지금도 Node.js기반 백엔드 작업을 굉장히 많이 하고 있는데 하면서 느낀점 및 꿀팁들을 작성해 보고자 한다. 언어가 JavaScript인 만큼 넘어온 요청 Body값이 Number인지 String인지 구분도 못하고 그냥 넘겨주는 것이 너무 불편하고 보기 껄끄러워서 Midleware를 활용하여 Request body 검증 로직을 수행하도록 했다. 그냥 Type검사 안하고 바로 통과해 버리는 JavaScript 보면 매우 불편해서 참을 수가 없다. 이게 회사 뿐만이 아니라 현재 진행하고 있는 Side project에도 적용을 해봤는데 매우 좋은 것 같다. 회사 로직을 옮겨 적을 수 없으니 Side project에서 진행한 Middle..