유사개발자 샤이와 무지

멋쟁이사자처럼부트캠프 데이터 분석 부트캠프 5기 Day 1[3/155] 이론과 환경 설정을 하는 날이에요 본문

멋사 데이터분석 5기를 보내며

멋쟁이사자처럼부트캠프 데이터 분석 부트캠프 5기 Day 1[3/155] 이론과 환경 설정을 하는 날이에요

Shy & Mujee 2025. 4. 1. 01:32

역시 첫 날은 역사 이야기와 셋팅의 시간 다양한 이슈가 호기심을 가득하던 하루였어요.


아침시간에는 계산기의 역사 UNIX등 흥미로운 이야기가 많이 나왔지만 특히 기억에 남는건 어떤 프로그램이 운영체제에 대해 독립적이냐 종속적이냐에 대한 이야기였는데

아주 간단히 이야기하자면 어떤 프로그램을 만들 때 운영체제마다 다른 코딩을 해야하는 것 이것이 의존적이다 라는 부분이고 운영체제와는 상관 없이 한가지 코딩으로 모든 운영체제를 커버한다면 그것이 독립적이다 라고 이야기를 할 수 있을 것이었어요.

 

  독립적 의존적
개발자 관점 개발 편리 개발 비용 많이 듦
사용자의 관점 사용에 필요한 비용 많음(느림) 사용에 필요한 비용 적음(빠름)

 

여기서부터 한 문단동안 운영체제로 부터 ... 이다의 앞쪽을 생략할게요. 설명을 들은 부분은 여기서 요즘은 운영체제에 독립적인 프로그램들이 많이 나오고 있다 라는 이야기이며 기존에 의존적인 프로그램들은 하드웨어의 한계로 소프트웨어는 빨라야했지만 현대의 하드웨어의 발전에 따라 속도의 제약이 덜어지면서 독립적인 프로그램이 많아질 수 있었어요.(많아졌다지 절대 모든 분야는 아니라는 것이 중요해요 ex 게임)까지이고 여기에 대해서 저는 이렇게 생각했어요

강사님이 질문하신 왜 독립적인 프로그램이 주류가 되었을까에 대한 저의 답변이었습니다..

 

제가 이 부분에 대해서 더 알고 싶어 구글링을 하던 도중 아주 좋은 글을 발견했어요

제가 플랫폼을 잊었는데 플랫폼(기차역 같은 느낌)이라는 주제도 있었어요. 아래 글을 읽다가 생각났는데

전 플랫폼에 대해서 기차 플랫폼이라고 대답을 했었어요

아직 이 플랫폼의 개념은 좀 애매한 것 같네요.

https://crayeji.tistory.com/102

 

Java는 플랫폼 독립적이다?

Java는 플랫폼 독립적이다 ? 1. 플랫폼이 뭘까? 한마디로 정의하기가 어렵다... 일단 지금은 "서비스를 위한 환경"이라고 생각한다. 배달 플랫폼이면 배달 시스템을 위한 환경, 기차역 플랫폼이면

crayeji.tistory.com

이 글을 읽으면서는 저는 도화지이라고 밖에 비유가 안되는 것 같아요. 어플리케이션, 프로그래밍 언어, OS는 각각 프로그래밍 언어, OS, 하드웨어라는 도화지 위에 그려진 다는 것이 가장 적절해보여요

 

위 글을 기반으로 보면 이 독립적인 프로그래밍 언어의 대표주자가 Java에요 Java같은 경우는 실행할 때 만들어진 바이트 코드를 JVM에 넣으면 실행파일이 되는 것이죠. 바이트 코드가 JVM에 들어가면 실행파일이 되기 때문에 JVM을 통해서 각 운영체제에 맞는 실행 파일로 바뀌니깐 Java는 플랫폼 독립적이라 보는겁니다. 그리고 이런 언어들은 Managed language라고 불린다고 해요.(덤으로 Java는 하이브리드 언어라고 부른다고 해요.)

반대로 C/C++같은 컴파일러를 통과하면 바로 실행 파일로 되어버려요. 이런 언어는 바로 기계어가 되어버리므로 C/C++은 플랫폼 종속적이라고 보는겁니다. 그리거 이런 언어들은 Unmanaged language라고 하죠.

그럼 우리가 주로 배우게 될 파이썬은 어떨까요? 통상적으로 인터프리터 언어라고 부르죠.(공부를 하다보면 점점 뭐가 많아지죠)

결론부터 말하자면 파이썬도 플랫폼 독립적입니다. 찾아보다보면 파이썬과 자바는 상당히 유사한 작동 구조를 가져요. 여기서부턴 좀 깊게 들어가니깐 따로 적어둘게요. 궁금하시면 밑에를 펴보세요

더보기

https://st-lab.tistory.com/176

https://gguguk.github.io/posts/how_to_work_python/

 

CS50 - 파이썬이 소스 코드를 실행하는 과정과 원리

우리는 앞선 글들에서 컴퓨터는 0과 1, 즉 2진수만 이해할 수 있다는 사실을 알았습니다. 그런데 코딩을 해보신 분들은 당연히 아시겠지만 우리는 0과 1로 코딩을 하고 있지 않습니다. 쉽진 않지

gguguk.github.io

이상의 두 글이외에도 다양한 글을 참고 했지만 이 두 글에서 사진을 꺼내와서 이 글만 일단 올려둘게요. 여기 2개의 글이 제일 읽기 좋게 써둔 것 같아요

https://st-lab.tistory.com/176

 

인터프리터로 작동하는 언어는 이런식으로 작동합니다. 하지만 이건 좀 추상적이죠 그래서 자세한 그림을 가져올게요

https://gguguk.github.io/posts/how_to_work_python/

자 파이썬이 작동하는 과정입니다.

https://st-lab.tistory.com/176

Java가 작동하는 과정입니다 굉장히 닮았죠?

하지만 둘의 차이가 있다면 파이썬 같은 경우는 컴파일 자체도 인터프리터 내부에서 일어나지만 Java같은 경우는 컴파일이 인터프리터 밖 즉 JVM 밖에서 일어납니다.

Java를 어느정도 해보신 분들은 아실거에요 Java를 실행시키면 .javac파일이 나오고 이걸 JVM으로 연결해서 실행시키잖아요. 이에 반해 파이썬은 그냥 실행하면 띡하고 실행되죠.

(이 부분에서 솔직히 많이 반성했습니다. Java를 학부과정에서 공부했음에도 불구하고 이런 과정에 관해서 전혀 탐구하지 않았으니까요.)

 

그리고, 좀 좁은 의미로는 C 역시 플랫폼에 대해 독립이라고 이야기 할 수도 있을거라고 합니다.(대신 C의 컴파일러가 플랫폼에 대해 의존적이라고 보는 관점도 있더라고요)

이 이야기는 여기까지 줄이겠습니다. 더 깊은 내용은 나중에 파볼게요 분명히 회고의 글인데 뭔가 또 파고 있네요

 


오후에는 파이썬, VScode, jupyter notebook(anaconda) 설치를 했고 특별한 내용이 없어서, 실행 과정중 발생한 이슈중 기억나는 것들에 대해서 가져와봤어요

https://stackoverflow.com/questions/38827949/python-terminal-unexpected-character-after-line-continuation-character

 

Python Terminal unexpected character after line continuation character

I have a file isqrt.py, containing following code: from cmath import sqrt x = -1 y = sqrt(x) print(y) I am getting following error in my Mac Terminal: File "isqrt.py", line 1 {\r...

stackoverflow.com

이 케이스는 맥에서 실행이 안되서 나온 케이스인데 rtf로 작성된 py파일은 파이썬 인터프리터에선 정상적으로 작동하지 못한다는 것을 보여줍니다. 해결은 아래 링크처럼하면

https://m.blog.naver.com/hooya100/221595025471

 

맥북 텍스트 편집기 (rtf를 txt 파일로 변환 저장)

맥에서 텍스트를 저장하고 윈도우에서 파일을 열면 ##%!%!#%$!$! 뭐래 이거 그지같은 호환성으로 파일이 깨...

blog.naver.com

저장 방식을 txt로 바꿔줄 수 있습니다.

 

그리고 다음은 문제는 아니었지만 편의성을 위해 구글링 도중 오래되어 바뀐 정보가 가득해서 제가 글을 써서 다른 분들이 활용하실 수 있게 제가 글을 써서 공유해드렸습니다.

https://shymujee.tistory.com/49

이렇게 저의 1일차는 끝났습니다. 뭔가 엄청 많은걸 했네요 회고를 하려고 했더니만 회고는 안 하고 새로운 내용만 잔뜩 파고든 것 같은데 이렇게 하는게 잘 하는건지 모르겠어요 ㅋㅋㅋ 일단 오늘은 끝!

 

멋쟁이사자들 데이터분석 5기 모두 화이팅입니다!!!

참고자료

https://crayeji.tistory.com/102

https://st-lab.tistory.com/176

https://gguguk.github.io/posts/how_to_work_python/

https://stackoverflow.com/questions/38827949/python-terminal-unexpected-character-after-line-continuation-character

https://m.blog.naver.com/hooya100/221595025471

 

Comments