본문 바로가기

기술 너머의 문화

왜 서버개발자는 맥을 사용할까?

<글 발행 배경>

컴퓨터공학과를 졸업했음에도 왜 많은 개발자들이(특히 개발자들이) 맥을 선호하는지 모르겠다. 

그래서 간략하게나마 왜 서버 개발자들은 맥을 선호하는지의 맥락을 파악하고자 한다.

 

 

<결론>

버 컴퓨터 대부분이 리눅스 운영체제를 사용하기 때문이다.또한 맥OS가 리눅스 기반이기 때문이다.

백엔드 개발자는 서버를 만드는 사람들이고, 프로그램을 만들 때의 환경과 실행시킬때의 환경셋팅을 동일하게 해주는 것이 좋겠지요 ~

프로그램을 만드는 것이란 코드를 짜는 행위 =>컴파일=>링킹=>실행 의 과정을 거치는데 특히 컴파일=>링킹=>실행이 부분이 개발자의 OS환경에 의존하기 때문이다.

 

<상세>

그렇다면 이 때의 환경셋팅이란 어떤 것이 있을까?

 

1.동일한 함수 사용 ex)fork(),exec()

2.링커가 OS에 맞는 라이브러리 경로, 시스템콜 구조를 사용

3.파일 권한 문제 호환성

 

1.리눅스/유닉스 체제에서만 정의된 함수가 있음. 

“윈도우에서 fork(), exec()를 쓰는 코드를 작성하고 컴파일하면 어떻게 되냐?” → 간단히 말해서 에러가 나거나, 아예 컴파일조차 안 될 수 있다. 필요한 함수를 개발하지 못함 그래서 학부 유닉스프로그래밍 실습시 가상머신 위에 우분투(리눅스)를 돌렸었는데,이제야 의문이 해결되었다..

 

 

2.OS가 다르면 기본셋팅 디렉토리 구조가 다르다.

우리 왜 컴퓨터 내부에 기본적으로 DESKTOP이라던가.. /PROGRAMFILES/..라던가 하는 디렉토리 구조가 있잖아요 요게 프로그램 실행시 여기저기서 가져다 쓰는건데,OS가 다르면 필요한 파일의 위치가 달라서 프로그래밍 설계시 여기서 가져다 쓰세요!했는데 엥 없는데요 하는 일이 발생하기 때문이에요..

 

 

3.권한 부여의 방식 차이 파일을 읽고 쓰고 또 수정하고..요런 권한 체제가 다르다.

프로그램은 여러가지 파일로 구성되는데,이 때 내가 어떤 파일을 누구나 실행할수있습니다!라고 개발할 때 권한을 주어도.. 다른 OS상에서 그 권한에 대한 부분을 제대로 인지를 하지 못해서 파일을 사용하는데 지장이 생길 수 있다... 뭐 이런 것?

 

 

<실제 맥 사용자들의 인터뷰>- 필자는 삼성 노트북+윈도우 조합 사용합니다.

TBC..