728x90

전체 글 125

[Algorithm] 소수찾기 (에라토스테네스의 체)

코딩테스트의 정말 큰 문제점이 뭐냐면, 했던 걸 계속 까먹는다는거다. 내가 짱구를 굴려서 풀었으면 그 이후에 풀 때도 짱구를 굴려서 풀 수 있을건데, 도저히 솔루션을 못찾겠어서 타인의 정답을 참고하게 되면 이런 문제가 생긴다. 그 이유가 뭐냐면, 실제로 사용되는 수학적 개념들을 요구하는 문제가 있기 때문인데 이 대표적인 예가 최대공약수, 최소공배수찾기, 에라토스테네스의 체를 활용해 소수찾기 같은 문제들이 그렇다. 앞선 게시물에서 이 내용들을 언급했음에도 또 내가 이걸 작성하는 이유는 내가 저것들을 봤음에도 불구하고 까먹었기 때문이다. ㅎㅎ.. 사실 앞선 게시물에서는 제대로 이해했다기보단 솔루션 저장소같은 느낌으로 모르겠으면 또 보려고 쓴거라, 이번엔 제대로 이해한 내용 그대로 작성해볼 예정이다. 1. 소..

Dev/Algorithm 2023.08.02

[Docker] Docker

자 지난 글에 이어서 도커 가져왔다. 일단, 이 얘기를 시작하기 전에 도커를 사용한다는게 요즘은 되게 흔한 일인데, 뭐 얘기만 했다하면 도커 공부하고 있고, 도커 써봤고 배포까지 직접해봤고 (쿠버네티스도 포함임) 등등 개발자의 기본 소양처럼 이야기가 되고 있다. 좋은 현상이라고 생각함. 애초에 코딩을 넘어서, 개발자가 기획단계에서 부터 실제로 배포되는 단계까지 전적으로 매니징을 할 수 있어야 의미가 있다고 생각하기 때문이다. 그렇다고 해서 막 엄청나게 공부를 열심히 해야한다 이렇게 얘기하기도 뭐한게 늘 하는 말이지만 기술이라는건 불편을 해소하기 위해 만들어진거다. 처음에 뭣도 모르고 들여다보면 그냥 겁먹을 수밖에 없지만, 까고보면 아니 이렇게 불편했던걸 이렇게 편하게 만들어준다고?! 정도 밖에 안됨. 그..

Dev/Deployment 2023.08.02

[Deployment] 배포 (Deployment)를 시작하기 전에

이번 글에서는 각종 클라우드 서비스들에 대한 이야기를 하기 전에, 기본적으로 알고 있어야할 개념들에 대한 이야기를 살짝하고 넘어갈건데, 개발자가 그걸 왜 알아야하느냐 라던가, 그건 인프라 영역이지 않나? 라는 얘기를 할거라면 부디 그저 클린코드만을 찬양하는 입을 다물었으면 좋겠다. (공격적으로 들렸다면 미안하다. 하지만 맘에 안들긴 함.) 요즘 개인적으로 고민하고 있는 부분이 있는데, 개발자가 매니징할 수 있어야하는 범위가 어디까지인지를 고민하고 있다. 개발자는 코드레벨에 있는 논리적인 로직 구성에 대해서만 집중해야하는가? 라는 질문을 던져보니 그건 아니라는 생각이 들어서 말이다. 당연히 분업화가 잘되어있는 서비스기업들의 경우에는 굳이 Front-end 개발자가 Devops, DBA 까지 건드릴 일이 거..

Dev/Deployment 2023.08.02

[SSUL] SI 신입개발자로 살아남기(9)

오늘은 기념비적인 날이다. 내가 담당하게 된 업무들의 분량이 최고치를 찍은 날인데, 사전에 이미 이야기가 되어있었던 부분이긴하지만 그래도 정작 마주하고나니 눈물이 앞을 가린다. 앞으로 몇개월 얼마나 고통받을지 모르겠음.. 오늘을 기념하여 또 살아남기 하나 쓰려고 하는데, 오늘 해볼 이야기는 퇴사를 어느 시점에 고민해야하는가? 에 대한 이야기다. 신입 개발자들은 물론 어지간한 사회초년생들 역시 애초에 뭐 기업이 어떻고 신용분석리포트가 어떻고 그런거 절대 알리가 없으니 좀 명확히 보이는 척도를 제시하고자 한다. 일단 첫번째로, 중급 개발자들이 대규모로 빠져나가거나 이직준비를 하기 시작했다면 우리도 해야한다. 이게 뭔 얘기냐면 제일 현업에서 활발하게 활동하고, 많은 기업들이 오퍼를 제시할 수 있는게 3~10년..

[JavaScript] BigInt

요즘 하반기 공채시즌이 열려서 중고신입 개발자 뽑는 공채에 미친듯이 지원을 하고 있다. 당연히 신입공채기 때문에 코딩테스트에 응시를 해야하는 경우가 대부분이라 요즘 코테 공부에 심혈을 기울이고 있다. 그러다 오늘 생각도 안했던 문제를 발견해서 기록을 남겨둔다. Number 지금껏 내가 착각하고 있었던게 있는데, Java를 기준으로 생각해서 착각했던것 같다. 다들 알다시피 Int타입에는 메모리적으로 한계가 있다. 이런 한계를 극복하고자 한다면 Long이나 BigDecimal을 사용하는 방향을 채택했었는데 이것만 생각하다보니 자바스크립트의 원시타입중에 하나인 Number는 걍 다 되는 줄 알았다. 왜냐면 숫자를 표현하는 타입이 저거뿐인줄 알았으니까... 근데 놀랍게도 이 Number 타입도 한계가 있다. 찾..

Dev/JavaScript 2023.07.25

[잡담] 개발자로 취업해도 되는가 라는 질문에 대한 고찰

오늘은 두개를 쓰려고 하는데 어제 본 뉴스가 있어서 그렇다. 뭐 개발자 채용 TO는 38% 가량 줄었다던데 또 지원자 수는 40% 가량 늘었다더라.. 그리고 진짜 이름도 못 들어본 중소기업 개발자 채용에 30명은 기본이고 100명이상씩 몰리기도 한다던데.. 어쨌든 먼저 뛰어들어 현직에서 일하는 입장에서 얼마나 취업이 안되길래 레드오션 다됐는데도 아직 뛰어들까? 라는 생각에 마음이 꽤나 아프기도 하고, 투자 안 해서 스타트업 줄줄이 망한다고 뉴스 겁나 나오는데 왜..? 왜 하필..? 이런 생각이 들기도 해서 쓰는거임. 나도 진짜 운이 안좋은 케이스인데, 난 회사 입사하고 한 3개월 지났는데 뉴스에서 테크기업 투자 혹한기 드립치더라. 근데 혹한기에 이제 막 뛰어들고 있는 사람들은 진짜 어떡하나 싶음. 한번 ..

[SSUL] SI 신입개발자로 살아남기(8)

오늘은 진짜 그 말로만 듣던 주먹구구식 운영에 대한 이야기를 해볼까 하는데, 진짜 경험하고나면 뒷골이 땡기고 머리가 띵하니, 당장이라도 그냥 때려치고 싶어질 지경이 된다. 대부분 신입개발자라고 하면, 쟤가 뭘 할 줄 알겠어.. 공부나 하라고 해. 라며 뒷전으로 밀어두는 그런 분위기나 OJT 같은걸 해서 사전 교육을 시킨다 이런걸 생각을 할텐데, 일단 기본적으로 좋좋소는 그런게 없다. 놀랍게도 그냥 입사와 동시에 바로 플젝에 갖다 박아버리는데 그렇게 갑자기 플젝에 뚝 떨어진 신입개발자는 그때부터 살아남기 위한 지옥의 시간이 지속 되는거다. 왜 이게 지옥의 시간인지 한번 설명을 해보도록 하자. 중, 고급개발자가 겁나 빠져나간다. 기본적으로 중소기업에는 중, 고급개발자라는 것이 상당히 귀한데, 첫번째 이유는,..

[JavaScript] Symbol

이번엔 Symbol에 대한 이야기를 할건데, 이게 진짜 난 도저히 엇다써야할지 감이 안 잡혀서 이해가 좀 힘들었다. 그냥 아무리 생각해도 ES6로 넘어오면서 언어 자체에 들어가있는 built-in 기능들을 위한 타입이지 않나? 정도 밖엔 감을 못잡았는데, 대충 정리해보면 그래도 JS 개발자가 조금씩 사용할 수 있는 것들이 존재하긴한다. 또한, 우리가 당연하게 사용하고 있던 것들 역시 Symbol로 정의 되어있기 때문에 알고 있으면 JS에 대한 깊은 이해에도 도움이 될 것으로 생각한다. 1. Symbol이란? Symbol은 ES6부터 JavaScript에 추가된 타입으로, 좀 특이한 녀석이다. 사용의 목적은 Property들의 충돌을 방지하기 위해 고유한 Property를 만드는 용도로 사용된다. 이런 식..

Dev/JavaScript 2023.07.17

[JavaScript] iterable / iterator

오늘은 iterable(이터러블), iterator(이터레이터)에 대한 이야기를 한번 해볼건데, 배열이나, Map과 같은 순회가능한 객체들을 다룬다면 이 개념에 대한 이해를 가지고 있는 편이 좋다. 대부분 학원에서는 for / while문을 사용하면 요소하나하나 꺼내쓸 수 있다. 이렇게만 가르쳐주게 되는데, 이게 그냥 초반 입문 시기나 개발을 취미로 하는 입장에서는 전혀 문제될게 없으나 좀 더 전문적인 영역으로 진출하고자 하는 인재들에게는 이 개념의 존재를 알고 있는게 차후 Object에서 Custom Iterator를 적용한다던가 같은 응용이 가능하기 때문에 기왕이면 학습해두길 권하고 싶다. 1. Iterable Protocol & Iterator Protocol 왜 또 Protocol같은 거슬리는 워..

Dev/JavaScript 2023.07.17

[JavaScript] Wrapper Object

이번에 살펴볼 이야기는 Wrapper Object인데, 이건 솔직히 내용이 많지 않을 것 같다. 근데 굳이 설명하는 이유는 알고 있으면 나중에 나올 얘기들에도 어쨌든 바로 떠올릴 수 있기 때문인거라, 짧게 정리하고 넘어가도록 하겠다. Wrapper Object (래퍼 객체) Wrapper 객체가 뭔지 설명하기 전에, 원시타입에 대한 이야기를 할건데, 기본적으로 Object.prototype을 상속하고 있는 모든 객체들은 생성자를 통한 객체 생성을 할 수가 있다. 근데 원시타입은 Object가 없는데 어떻게 생성자를 통한 객체 생성이 가능한지 의문이 들거다. 예를 들면 아래와 같은 코드들임. const str = new String(); const num = new Number(); const bool =..

Dev/JavaScript 2023.07.13
728x90