본문 바로가기

카테고리 없음

보이저엑스

VoyagerX라는 회사를 우연히 접했는데 아주 매력적이다.

보이저엑스에서 일한다면 나의 성장, 회사의 성장, 급여, 복지까지 직장생활에서 얻을 수 있는 건 다 챙길 수 있어 보인다.

직접 경험한 것은 아니지만, 기업문화부터 철학까지 매력적이었다.

 

회사 소개와, 채용 관련된 안내문을 읽어보니 사람을 홀리게 하는 힘이 느껴졌다.

이런 언변이라면 투자금을 어디서든 얻어오지 않을까? 싶을 정도였다ㅋㅋ

 

인턴 지원 자가체크 질문에 모르는 내용도 많았지만 신기하게도 아는 내용도 꽤 있었는데

보통의 it회사가 개발이나 cs관련 지식만 물어본다면 여기는 컴퓨터에 대한 전반적, 전분야적인 관심을 높게 보는 느낌이었다.

보통은 PNG와 JPG 차이점이나 HDD SSD DRAM 성능같은 건 안물어볼 것 같았달까

15개의 질문 중 조금이라도 대답 가능한 것들을 적어보자.

1. PNG와 JPG의 차이점은?

PNG는 표준느낌이고, JPG는 압축 시 손실이 생겨 용량이 작아지지만 화질이 낮아진다?

3. Virtual Memory란?

가상메모리가 맞다면, 작업 시 부족한 메모리 용량을 보조메모리에서 사용하는 것으로, 주메모리 용량이 모잘라도 프로그램을 실행할 수 있게 되지만 보조메모리 특성 상 속도가 느려 성능이 저하될 수 있다.

5. Cache란?

캐시는 임시로 저장하는 데이터로, 자주 쓰이거나 다시 쓰일 것 같은 데이터를 저장해서 속도를 높이는 용도이다.

http캐시는 클라쪽, 서버캐시는 서버쪽, 프록시서버에 저장되는 캐시도 있다.

어느 곳에 저장되든 목적은 통신속도향상!

클라쪽에 저장되는건 브라우저에 저장될거고, 서버캐시는 자주 들어오는 요청을 미리 캐시로 만들어놔 응답속도를 높힐 수 있고`

프록시 서버는 캐시 저장 외에도 다양한 기능을 하는데, 일종의 검문소 느낌이다.

kt같은 인터넷서비스 제공자도 프록시서버를 운용하고, 기업들도 회사망에 프록시 서버를 두어 보안을 강화하고, 서버쪽도 프록시서버를 앞에 두어 다양한 용도로 쓰는 듯.

프록시 서버라길래, 와 서버면 물리적인게 있을텐데 어떤 사람이 날 위해 프록시 서버를 두는 거지? 싶었다.ㅋㅋㅋ

인터넷서비스 제공자라니까 바로 납득이 되었던 기억이 난다.

6. Garbage Collection이란?

가비지 콜렉터가 맞다면 자바나 고 같은 언어 실행 시 일정 주기마다 사용하지 않는 객체같은 걸 지워 메모리 용량을 확보해주는 기능이다. 개발자가 램누수나 메모리최적화 같은 고민을 안해도 되는 장점이 있지만, 가비지 콜렉터가 실행될 때 마다 프로그램에 성능 저하가 생길 수 있는 단점도 있다. C나 C++같은 건 이게 없고 직접 메모리를 최적화 해야 한다고..

7. Database Index 추가의 장단점은?

데이터베이스 공부를 시작하지 않아서 정확하진 않겠지만, 유튜브나 인터넷에서 습득한 기억으로는 인덱스가 추가되면 데이터를 더 세분화해서 저장하고 분류하고 찾거나 정렬하거나 할 때 좋은데, 단점은 성능과 추가적인 저장공간 이랄까.. 

세상의 대부분의 것은 모두 장단점을 양면적으로 갖고 있다고 생각하는데, 이 특성은 컴퓨터쪽에선 더 극명한 것 같다.

8. NoSQL의 장단점은?

몽고디비! 하지만 장단점을 설명할정도로는 모르겠다. 관계형데이터베이스랑 서로 장단점이 있었는데!

12. Node.js의 특징은?

노드js는 자바스크립트를 웹이 아닌 곳에서도 사용하게 해주는 것!, 브라우저를 떠나서도 사용할 수 있는 자바스크립트

npm으로 터미널처럼 라이브러리같은 거 설치도 가능하고.. 무엇보다 자바스크립트 하나만으로 프론트엔드부터 백엔드까지 가능해지는 게 가장 유명한 특징 아닐까? 프레임워크는 아닌데 뭔가 흠.. 엔진 같은 거랄까

13. HDD,SSD,DRAM 각각의 성능은?

하드디스크는 자기방식으로 디스크에 데이터를 입출력하는데, 디스크를 고속으로 회전시켜야 해서 소음도 있고 부피가 큼

아무래도 디스크를 회전시켜야 되니 부피가 커질 수 밖에 없는 듯. 다른 저장장치에 비해 용량 대비 가격은 저렴한데 속도는 그만큼 느린편. 물리적 충격에도 약해 데이터가 손실될 수 있는 단점도 있음. 다만 상대적으로 느린거지 못쓸 정도로 느린 게 아니라서 많은 용량의 데이터를 저장하기엔 가장 적합함. 하드디스크를 레이드해서 개인이나 사무실 클라우드로 쓰는 등의 활용이 가능함. 단순히 저장용으로는 제일 좋은듯?

SSD는 거의 SATA나 M.2형식을 쓰는데 뭘 쓰든 일단 하드디스크보다 속도가 굉장히 빠름. 물리적 충격에도 하드디스크보단 강한데 그렇다고 얘가 단단하고 그런건 아니라서 진짜 물리면역 이런 느낌은 전혀 아님. 대신 정전기 같은 건 주의해야한다고함. 가장 장점은 뭐니뭐니해도 속도!. 속도가 정말 빨라서 ssd 처음 쓰면 컴퓨터 부팅속도에 감동함

옛날엔 컴퓨터 전원 누르고 이닦고오고 화장실가고 물마시고 그랬는데 이젠 누르고 눈 두세번 깜빡이면 바탕화면임.

그리고 부피도 작음!. SATA 때도 작았지만 요즘 많이 쓰는 M.2형식은 더 작음, 이젠 램보다도 작아짐

m.2형식도 2280, 2230 여러종류 있는데, 단자모양은 같은데 길이가 다른 것

보통 pc에선 2280을 주로 쓰고 노트북같은 포터블 pc는 2230처럼 길이가 짧은 걸 쓰는 경우도 많음.

pcie3.0일때도 빨랐는데 요즘은 4.0제품도 상용화된 상태, 4.0은 빠른만큼 발열도 심해서 방열판등을 달아서 발열관리를 해주지 않으면 온도로 인한 성능저하가 생길 수 있음. 

사용할수록 속도가 줄어드는 단점이 있는데, 제품마다 300tb까지의 읽고쓰기 성능을 보장한다는 식으로 명시해두는 편.

좋은 ssd는 pcie4.0에 컨트롤러 성능도 좋고, dram도 달려있어서 성능과 수명이 모두 좋은 제품.

단점은 그만큼 비싸다는 거. 부자라면 개인 클라우드를 ssd로 만들어도 되겠지요

DRAM은 아마 pc에 사용되는 주메모리를 말하신 것 같은데 ssd에도 dram이 들어가듯이 dram이라는게 분야가 넓은 듯.

컴퓨터의 주메모리를 뜻하는 거라면, 램은 ssd보다도 빠름, 엄청나게 빠르다는 장점이 있음. 하지만 휘발성 메모리라 전원이 꺼지면 데이터가 모두 사라짐. 따라서 저장용의 메모리라기보단 작업용으로 쓰임.

cpu와 주기억장치(hdd,ssd)의 속도차이를 커버하기 위한 용도로 주로 쓰이는데, 일종의 cpu가 사용하는 작업대의 역할

램은 ddr3, ddr4 이런식의 규격? 이 있는데 요즘은 ddr5가 상용화되고 있음. 아직 살짝은 안정성이 부족한 느낌?

컴퓨터 사용 시 버벅인단 느낌을 받는 건 대부분 램 용량이 부족한 경우이고 간혹 cpu 로드가 100%찍어서 그럴때도 있지만

암튼 앞서말한 두 저장장치보다 훨씬 빠르지만 휘발성 메모리고, 가격도 가장 비싸다(용량대비)

10년전만 해도 8기가면 충분했는데, 배그나오면서 16기가가 국룰이되고, 요즘은 32기가가 국룰인듯

램은 듀얼채널로 구성해야 성능이 잘나오는데, 이유도 읽어는 봤지만 그렇구나 하고 넘어가서 원리까지는 잘 모르겠다.

15.GIT의 장점은?

깃의 장점은 개발중인 프로그램을 버전별로 관리할 수 있다는 점

간단한 예만 들자면, 새로 업데이트한 버전에 문제가 있으면 그 전버전을 사용하면 된다 정도

이를 응용하면 여러 개발자가 같은 프로그램을 개발하더라도 동시에 개발이 가능한 장점이 되는데

한 사람이 실수를 하더라도 디벨롭중인 복사본이 기반이기에 언제든지 되돌릴 수 있고,

각자 작업한 부분을 합치는 과정에서 발생하는 문제도 버전별로 저장되는 깃을 활용해 해결하기 용이해진다.

 

 

딥러닝에도 관심이 많은데 딥러닝 관련 질문은 정말 모르겠다.

 

아직 정확한 분야를 정하지 못하겠어서, 일단 풀스택으로 공부하면서 찾아가려는데, devops나 sre도 관심이 있고 인공지능에도 관심이 커서 문제다. 특히 인공지능은 석박이 기본이라는 인식도 있고, 잘못했다간 이도저도 아닌 개발자가 되지 않을까 하는 두려움도 있는 듯.

만약 보이저엑스에서 인턴근무를 할 수 있다면 내 분야와 진로를 정하는 데 아주 중요한 경험이 되지 않을까?

공부의 방향성을 잡는 데 고민이 많았는데, 이도저도 아닌 부트캠프 보다는 독학하면서 보이저엑스에 어울리는 개발자를 목표로 하면 성장에 큰 도움이 될 것 같다.

 

하나의 프로젝트에서 천 줄 이상의 프로그램을 작성

컴퓨터 관련 전공 10개 이상 들었거나 그 수준의 지식을 갖춤

하루에 오백줄 이상의 코드 작성할 집중력이 있음

 

요 3가지에 집중해보자고!

개발은 써봐야 느는 것 같으니

하지만 컴퓨터과학은 읽고 머릿속으로 곱씹고 추상화해서 이해하는 게 맞는 것 같고! 아닐수도 있고!

 

수학을 좋아하고 잘함

고등학교때 전국 상위 10%이내에 들었거나 그정도의 실력이 현재 있다.

이부분은 맞다. 수학은 내신이든 모의고사든 어지간해선 1등급이었으니! 수능도!

CS공부하면서 ai를 생각한다면 수학공부도 꼭 해야겠다.

 

그리고 영어! 영어기술문서 읽는덴 크게 어려움이 없긴 하다. 영어도 잘했으니까

다만 쓰거나 말하는 건 너무 못하는데 이것도 개선하고 싶다.

개발자로 성공하려면 제일 잘 다뤄야할 언어가 영어인 것 같다.

한국이 좋고 한국에서 살고싶지만 개발자로 살기로 한 이상, 경험과 인프라를 위해선 영어실력은 필수인듯

 

사실 인턴 조건은 정말 필수적인 내용일테니

추가로 기술스택을 잘 정해서 한가지의 혹은 두가지의 언어를 깊게 파보는 경험을 가져야겠다.

인턴만 되도 감지덕지지만, 직원이 되면 더할나위 없이 좋을테니까