728x90

노마드 코더의 챌린지로 IT 5분 잡학사전이라는 책을 읽기 시작했었다.

 

여러 챌린지에 도전했지만, 생에 처음으로 성공해본 챌린지여서 감회가 남달랐다.

노마드 코더가 잘 완수할 수 있도록 독려해준 것도 있지만, 애초에 책 자체가 좋아서 매일 읽고 싶은 마음이 컸다.

 

이 책은 IT 분야 전반을 넓고 얕게 다뤄주는 책이라고 정의하고 싶다.

넓고 얕다고 해서 이를 건너뛰고 한 분야에 집중된 강의나 책부터 시작하는게 시간낭비 없이 빠른 방법이라고 예전엔 생각했지만, 이 책을 읽고 나서 생각이 달라진 것 같다.

 

숲을 먼저 보라는 말이 있지 않은가?

내가 어느 방향으로 나아가야 하고, 이 방향으로 나아가기 위해 배워야 할 것은 어느 것이 있고,

그 배워야 할 대략의 개념을 짚어주어 진입 장벽을 낮춰주는게 이 책의 역할이라는 생각이 든다.

돌아보면 내가 더 공부하고, 나아가는데 동기부여도 적절해 해준 것같다.

 

전공자이기 때문에 대부분의 개념을 알고 있었지만

기존에 애매하게 알고 있던 개념들이 확실히 잡히기도 했고, 더 깊에 공부하고 싶은 분야도 생겼다.

그래서 새롭게 알게 된 내용은 더 구글링하고 직접 공부해보며 블로그에 기록해보기도 했다.

 

https://jaehhhk.tistory.com/42

 

[IT 5분 잡학사전] C, C++, C#의 차이

노마드 코더 챌린지 2일차이다! 이번 포스팅에서는 기존에 나도 새롭게 알게 되었던 C, C++, C#의 차이에 대해 알아보려 한다. 모두가 알듯이 프로그래밍 언어는 정말 다양하다. 단순히 여러 종류

jaehhhk.tistory.com

https://jaehhhk.tistory.com/43

 

[IT 5분 잡학사전] 파이썬이 C보다 느린 이유

노마드 코더 노개북 3일차! 이번에 책을 읽으며 새롭게 배운 내용인 파이썬이 C언어보다 느린 이유에 대해 설명해보려 한다. 파이썬이 C보다 느리다는 것은 당연한 사실로 받아들이고 코드를 짰

jaehhhk.tistory.com

https://jaehhhk.tistory.com/46

 

[IT 5분 잡학사전] SQL과 NoSQL

이번 포스팅에서는 SQL과 NoSQL에 대해 말해보려 한다. 학부 과목으로 DB와 SQL을 배웠지만(이번 학기에도 심화 강의 들어야 함) 해당 수업때는 MySQL 워크벤치나 쿼리문을 중심으로 배웠고 NoSQL에 대

jaehhhk.tistory.com

 

다음 챌린지인 클린코드도 이미 신청하고, 책도 구매했다.

 

날 앞으로 더 나아갈 수 있게 만들어준 노마드 코더에 무한 감사를 표하며,,

이 책을 읽을지 말지 고민하고 있는 사람들이 있다면 진짜 강추한다! 

 

728x90
728x90

이번 포스팅에서는 SQL과 NoSQL에 대해 말해보려 한다.

학부 과목으로 DB와 SQL을 배웠지만(이번 학기에도 심화 강의 들어야 함) 해당 수업때는 MySQL 워크벤치나 쿼리문을 중심으로 배웠고

NoSQL에 대해선 제대로 배우지 못했다.

 

따라서 NoSQL의 여러 종류(MongoDB, CassandraDB ... )에 대해 이름은 알고 있었으나 그들의 차이점에 대해 정확히 알고 있지 않았다.

이번에 그 종류와 구분에 대해 개념이 잡힌 것 같아 풀어써보려 한다.

 

그전에 SQL이 무엇인지부터 시작해보려 한다.

 


SQL과 DB

SQL은 DB에 쿼리(질의)를 날리기 위해 어떤 구조를 갖고 있는 언어이다.

즉 데이터베이스를 다루는 언어인 것이다.

 

SQL로 쿼리를 받은 데이터베이스는 데이터를 보관하는 창고의 역할을 한다.

데이터베이스 자체는 데이터를 직접 처리하는 능력을 갖고 있지 않다. 

데이터를 처리하는 시스템은 DBMS(DB Management System)이 담당한다.

SQL로 데이터베이스와 상호작용을 하려면 이러한 DBMS를 거쳐야 한다.

 

이러한 DBMS의 여러 종류 중 하나가 우리가 흔히 알고 있는 MySQL, Oracle이다.

각 DBMS에는 각자가 쓰는 SQL이 있다.

 

 


NoSQL

NoSQL은 앞서 살펴본 SQL과 성격이 다르다.

NoSQL은 각자의 성격에 따라 다시 Document DB, Key-Value DB, Graph DB로 나뉜다. 

 

Document DB

도큐먼트 데이터베이스로 대표적인 것은 Mongo DB가 있다.

몽고 디비는 데이터를 JASON 형태로 저장한다.

대괄호와 중괄호를 이용해 데이터를 구분해서 저장하는 것이다.

 

기존 SQL로 다루는 데이터베이스는 표의 형태를 띄고 있어 매우 정적(Static)이다.

만약 기존 데이터베이스에서 하나의 열을 늘리고 싶다면 다른 행에는 반드시 추가할 열에 들어갈 값이 명시되어 있어야 한다.

 

반면 몽고 디비와 같은 도큐먼트 데이터베이스는 데이터마다 구성 요소가 같을 필요가 없다.

덕분에 개발자가 원하는 모양의 데이터를 자유롭게 저장할 수 있다는 장점이 있다.

 

Key-Value DB

키값 데이터베이스로 대표적인 것은 Cassandra, Dynamo DB가 있다.

 

카산드라는 열이 넓다는 특징이 있다.

매우 넓은 열을 갖고 있는 데이터베이스인 것이다.

덕분에 많은 데이터를 매우 빠른 시간에 처리할 수 있다는 장점이 있다.

이러한 특징으로 애플, 넷플릭스, 우버 등의 회사가 이를 이용하고 있다.

 

Graph DB

페이스북이 개발한 그래프 데이터베이스는 노드로 관계를 표현하는 데이터베이스이다.

페이스북을 예시로 들면 사용자1이 사용자2에 좋아요나 댓글을 남길 수 있다.

이때 사용자2는 사용자1과 팔로우하 중인 사용자3도 존재한다.

이처럼 사용자 한 명 한 명을 하나의 노드로 보았을 때의 여러 측면의 관계를 그래프로 표현할 수 있다.

728x90
728x90

이번에는 웹개발에서 중요한 키워드인 프런트 엔드(Front-End, FE)와 백엔드(Back-End, BE)에 대해 알아보고,

더 나아가 풀스텍(Full Stack)에 대해서도 알아보려 한다.

 

맨 처음 소프트웨어 학과 공부를 시작할 때 가장 먼저 했던 고민이었던 것 같다.

'만약에 웹 개발자가 된다면 프런트 엔드로 나아가야 할까? 백엔드로 나아가야 할까?'

 

지금은 인프라쪽으로 진로 방향을 잡고 나아가고 있지만

모든 소프트웨어를 공부하려고 하는 사람들이라면 무조건 알아야 할 것들이라 생각한다.

 


Front-End

 

프런트 엔드는 말 그대로 '프로그램의 가장 앞'을 말한다.

우리가 사용하는 웹 사이트의 화면들을 프런트 엔드라고 한다.

사용자가 보는 화면의 인터페이스인 것이다(UI).

 

사용자 인터페이스는 사용자와 상호작용하는 것을 의미한다.

예를 들면 우리가 웹 사이트에서 볼 수 있는 여러 버튼들, 입력창, 반응형 디자인 등등

 

이러한 것들을 개발하는 직군이 프런트 엔드 개발자이다. 

프런트 엔드 개발자들은 HTML과 CSS, Java Script, React, Vue.js 등으로 개발을 진행하며

관련 코딩 트렌드와 유행하는 툴들이 자주 업데이트 되어 커리어 중에도 습득해야 할 학습량이 어마어마하다.

그래서 이러한 고충 때문에 JavaScript Fatigue 라는 용어도 따로 있다고 한다..(이건 몰랐네)

 

매일 업데이트 되는 트렌드로 이를 팔로업 하기 위한 정보량이 많지만, 끊임없이 자신을 발전시키는 것을 좋아하는 분들, 최신 기술을 이용하는데 흥미를 갖는 분들이라면 정말 매력적인 직무라고 생각한다.

 

만들면서도 진행 상황을 레이아웃으로 한번에 확인 가능하고, 사용자 피드백도 즉각적으로 받을 수 있는 영역이기 때문이다.

 

 

Back-End

 

백엔드는 반대로 '프로그램의 가장 뒤'를 말한다.

데이터베이스(회원 정보 등등)와 라우터 등의 웹의 뒷 부분을 담당한다.

 

백엔드는 프런트 엔드와 달리 사용자가 눈으로 즉각적으로 볼 수 있는 부분이 아니지만, 실제 우리가 사용하는 기능들의 전반이다.

회원 생성, 글 업로드, 댓글 작성 등의 기능들을 백엔드에서 처리한다.

 

관련해 여러 프로그래밍 언어 및 SQL을 알고 있어야 한다는 고충이 있지만, 프런트 엔드보다 개발 환경이 안정적이라는 장점이 있다.

프런트 엔드가 불안정적이라는 뜻이 아니라, 백엔드는 개발자가 선택한 프래임 워크(Django, Spring,,,)에서 트렌드가 프런트 엔드와는 달리 확 바뀌지 않는다는 것이다.

 

하지만 프런트 엔드와 달리 사용자 눈에 보이지 않는 뒷면을 개발하다보니, 즉각적인 피드백을 받을 수 없다.

 

 

Full-Stack

 

풀스택은 프런트 엔드, 백엔드에 더해 데브옵스(DevOps)이다.

풀스택 개발자들은 이들을 다 할 줄 알아야 한다.

이때 데브옵스는 소프트웨어 개발 + 운영이다.

 

이들은 개발 뿐만아니라 데브옵스, 즉 서버 선정, 서버 셋업, 보안 등 수많은 것들을 담당할 수 있어야 한다.

 


 

이렇게 프런트 엔드, 백엔드, 풀스텍에 대해 알아보았다.

나 같은 경우 리눅스 서버를 주로 만지다 보니 개발 영역에는 모르는 부분들이 많다.

그래도 나름 웹/앱 관련 툴들이나 용어들에 대해서는 전반적으로 다 알고 있다고 생각했는데, 책을 읽으면 읽을 수록 내가 모호하게 알고 있던 부분이나 새로운 개념들이 명확해지기 시작했다. 

728x90
728x90

오늘 새로 배운 내용을 정리해보고자 한다

 

바로 도메인 주소 관리에 대하여이다!

우리가 이용하는 인터넷 주소 즉 도메인의 관리는 어떻게 되고 있을까?

 

오늘은 우리의 삶을 편리하게 만들어주는 도메인 시스템과 레지스트리

그리고 처음으로 약간의 개인적인 이야기를 덧붙여 내가 개발을 하려는 이유에 대해 말해보려 한다.


우리 삶을 편리하게 만들어준 도메인 시스템

 

모든 개인용 노트북 및 컴퓨터부터 시작해 기업이 운영하는 서버들은 모두 IP주소를 갖고 있다.

그러므로 당연히 우리가 사용하는 홈페이지는 모두 IP주소로 접속 가능하다.

 

하지만 그 긴 숫자들을 외우는 것 보다 간단한 이름으로 입력을 해서 들어가는 것이 더 편리하고, 그것이 지금 우리가 사용하고 있는 도메인 체계이다.

 

예를 들어 네이버의 IP주소는 202.131.30.11이다.

우리는 이 숫자들을 직접 주소창에 입력하여 네이버에 접속하는 대신, www.naver.com을  을 입력하여 접속한다.

 

이러한 도메인 시스템 덕분에 우리가 네이버의 주소를 입력하면, 브라우저는 도메인 시스템에서 네이버에 해당하는 IP주소를 찾아 사이트로 이동한다.

이 부분에 대해 기술적이고 자세한 이야기는 추후에 더 깊에 풀어써보려 한다.

 

 

도메인 시스템과 레지스트리

위에서 알 수 있듯이 도메인은 하나의 전화번호부라고 생각하면 된다.

IP주소와 도메인 이름이 매핑되어 있는 것이다.

 

하지만 그렇게 단순히 1:1로 매핑해서 관리하기에는 전세계 도메인 수는 엄청나다.

그래서 넓고 복잡한 도메인 시스템을 관리하는 방법이 따로 존재한다.

바로 큰 전화번호부 안에 세부로 전화 번호부를 따로 두는 것이다.

이러한 작은 전화번호부를 레지스트리라고 한다.

 

레지스트리는 기업에서 운영한다.

가장 유명한 레지스트리 기업은 베리사인(VeriSign)이라는 곳이다.

https://www.verisign.com/

 

Verisign is a global provider of domain name registry services and internet infrastructure - Verisign

Verisign enables the security, stability and resiliency of key internet infrastructure and services, including the .com and .net domains. The domains that define the internet are Powered by Verisign.

www.verisign.com

 

베리사인이 가장 유명한 이유는 많은 도메인 중에서 닷컴(.com)을 관리하고 있기 때문이다.

 

근데 여기서 오해하면 안되는 것이 베리사인과 같이 레지스트리를 관리하는 기업은 도메인을 생성하기만 할 뿐 이를 직접 판매하지는 않는다. 

 

도메인을 구입하려면 리셀러들에게 구매를 해야한다.

대표적인 리셀러로는 고대디(GoDaddy), 우리나라 기업으로는 관심 있는 분들은 자주 들었을만한 카페24(Cafe24)가 있다.

https://www.cafe24.com/

 

카페24 - No.1 글로벌 전자상거래 플랫폼

회원가입만 하면 글로벌 쇼핑몰부터 제작, 배송, 마케팅까지 이커머스에 필요한 솔루션과 인프라를 원스톱으로 제공

www.cafe24.com

이러한 리셀러가 필요한 이유는 도메인을 레지스트리에 등록하는 과정이 매우매우 복잡하기 때문이다.

 

레지스트리를 운영하려면 도메인을 관리하는 기구인 ICANN(Internet Corporation for Assigned Names and Numbers)에 신청을 해야한다.

(하지만 신청 비용도 엄청나고, 레지스트리를 운영할 수 있는 인프라와 기술을 입중해야 한다고 하니 개인 단위에서 신청하는 것은 거의 불가능해 보인다ㅎ)

 


내가 개발을 하는 이유

내가 개발을 하는 이유에 대해 짧게 써보려 한다.

사실 지금 난 인생에서 아주아주 혹독한 겨울을 보내고 있다.

부끄럽지만 28년동안 처음으로 내가 지금까지 살아온 인생을 돌아보고 있는 중이기도 하고, 수많은 후회와 깨달음을 반복해가며 울고 웃기도 하고 있다.

 

내가 이번 겨울을 돌아보며 뼈저리게 느낀 것은 두 가지이다.

첫 째는 해야겠다고 생각한 일은 절대로 미루지 말자.

둘 째는 모든 일에는 준비가 되어 있어야 한다. 

나는 이 두가지를 소홀히 해서 인생에 큰 기회라고 생각했던 아주 아주 많이 소중했던 것을 잃었다.

 

이걸 알고 내 삶을 돌아보니, 사소한 것들에서도 이 두 가지가 제대로 되어있지 않은 채 습관이 되어 있더라

그래서 이걸 뿌리채 뽑아버렸고, 이 두개를 내 삶의 큰 원칙으로 삼고 살아가보니 세상을 바라보는 눈과 내 생활 패턴이 신기하게 완전히 바뀌었다.

 

인간이 상실감을 느낄 때가 가장 창의성이 높아질 때라고 한다.

그렇게 나한테도 운좋게 좋은 아이디어가 스쳤고, 그걸 생각난 김에, 그리고 그 아이디어가 타이밍 맞게 세상에 나오기 위한 준비를 하고자 개발을 하려 하고, 노마드 코더 챌린지도 신청했다. 

 

더 깊은 이야기는 다음주 쯤에 올려야겠다.

슬퍼하더라도 이번주에 있을 세미나랑 랩미팅을 마저 끝내고 슬퍼해야겠다.

 

 

728x90
728x90

노마드 코더 노개북 3일차!

이번에 책을 읽으며 새롭게 배운 내용인 파이썬이 C언어보다 느린 이유에 대해 설명해보려 한다.

 

파이썬이 C보다 느리다는 것은 당연한 사실로 받아들이고 코드를 짰었다.

하지만 부끄럽게도 왜 파이썬이 더 느린지는 정확히 알지 못한채 '그냥 느리다니까 느리다' 정도로만 알고 있었다.

이번에 책에서 실생활 비유를 통해 그 이유를 설명해주었는데, 이를 바탕으로 글을 작성해보려 한다.

 

그렇다고 파이썬이 느린 언어라고 오해하면 안된다.

파이썬도 충분히 빠르지만 C에 비해서는 느리다는 뜻이다.

 

두 언어의 속도 차이에 대해 이해하려면, 인터프리터와 컴파일에 대한 개념을 먼저 알고 가야 한다.

파이썬이 C보다 느린 이유는 한마디로 정의하자면

파이썬은 인터프리터 언어이고, C는 컴파일언어이기 때문이다.

 


인터프리터 vs 컴파일

프로그래밍 언어는 고수준 언어로, 이를 0과 1로 하드웨어가 알아들을 수 있게 변환해주는 과정이 필요하다.

언어가 해석되는 방식은 두 가지가 있는데 그 방법에 따라

인터프리트 언어, 컴파일 언어 두 개로 나뉜다.

 

인터프리트 언어

인터프리트 언어는 동시 통역이라 생각하면 편하다.

뉴스를 보면 높으신 분들이 외국 방문을 했을 때 뒤에 통역해주시는 분을 옆에 두고 대화하는 것을 볼 수 있다.

한마디를 하면 통역사가 상대방이 알아들을 수 있는 언어로 실시간으로 번역해서 들려준다.

 

이와 같이 프로그래밍 언어 중에서 중간에 인터프리터가 실시간으로 명령어를 하드웨어에게 0과 1로 번역해주는 언어가 있는데 이를 인터프리터 언어라 한다.

 

대표적인 인터프리트 언어로는 파이썬, 자바스크립트가 있다.

코드를 작성하면 중간에 인터프리터가 0,1로 이를 실시간으로 번역하여 하드웨어에게 전달하는 방식이다.

 

 

컴파일 언어

반대로 높으신 분들이 서한을 주고 받을 때를 생각해보자.

각자 본인이 하고 싶은 말을 모국어로 쭉 작성한 뒤, 번역가가 이를 통째로 번해서 상대측에게 전달한다.

이는 실시간으로 말을 주고 받는 방식과 다르다.

 

프로그래밍에선 이를 '컴파일한다'라고 한다.

대표젹인 컴파일 언어로는 C언어가 있다.

 

코드를 작성하면 컴파일을 통해 기계어로 한번에 번역해서 하드웨어에 전달해주는 언어인 것이다.

따라서 Visual Studio에서 C언어를 작성한 후 실행을 해주려면 빌드 과정(컴파일 + 링킹)을 무조건 거쳐야 하는 이유도 C언어가 컴파일 언어라는 점에 있다.

 

 

속도 차이가 나는 이유

그렇다면 이 두 방식에 따른 속도차이는 왜 일어나는 것일까?

 

우선 파이썬은 명령어 한줄한줄을 인터프리터가 하나씩 실시간으로 0과 1로 번역을 해줘야 한다.

이때 작성한 코드 양이 많을수록 인터프리터가 동시통역해야 할 양은 당연히 늘어나게 된다.

 

반대로 C는 완성된 코드 스크립트를 한번에 묶어서 통번역을 한다.

한줄한줄 실시간 번역하는 중간 과정이 필요없는 것이다. 따라서 이에 따라 속도가 파이썬보다 더 빨라지게 된다.

 

또한 인터프리트 언어는 실시간으로 번역을 이미 진행하는 중에 중간 오류가 나오면 그때서야 오류를 뱉어낸다.

100줄로 된 코드 중 98번째 줄에 오류가 났으면 1부터 97번째 줄까지 전부 실시간 번역을 한 후에야 98번째 줄에 막혀 오류 메시지를 반환하는 것이다.

 

반면 C언어는 컴파일 과정에서 해당 스크립트를 전부 다 번역할 수 있을 때까지 실행을 결과를 실행하지 않는다.

번역이 어려운 지점이 있으면 애초에 번역을 시작하지 않는 것이다.

 


 

노마드 코더 슬랙 처음으로 가입해서 둘러봤는데,

개발하면서 정말 유용하고 다양한 정보들이 공유되고 있었다!

이걸 왜 이제 안거지...?  

728x90
728x90

노마드 코더 챌린지 2일차이다!

이번 포스팅에서는 기존에 나도 새롭게 알게 되었던 C, C++, C#의 차이에 대해 알아보려 한다.

 

모두가 알듯이 프로그래밍 언어는 정말 다양하다.

단순히 여러 종류만 있는 것이 아니다. 각 언어별로 쓰이는 분야와 범위가 있고 역사가 매우 깊은 언어들이 많다.

따라서 본인이 어떤 분야에서의 프로그래머가 되고 싶은지에 따라 집중적으로 공략해야 할 언어들이 존재한다.

(물론 다양한 언어를 접해보는 것을 추천한다.)

 

이러한 수만은 언어중 C, C++, C#에 대해 알아보도록 하겠다.

 


 C

 

 

1972년 UNIX 개발을 위해 만들어진 C언어는 하드웨어에 직접 접근이 가능한 저수준 언어이다.

당시 유명했던 B언어의 이름을 따라 지었고, B언어의 영향을 실제로 많이 받았다.

 

하드웨어 직접 접근 뿐만아니라. 메모리 등의 운영체제 자원을 효율적으로 이용을 하기 위한 시스템 레벨의 작업을 수행할 수 있는 언어이다.

한정된 메모리 자원을 하드웨어가 효율적으로 사용하기 위해 사용자가 직접 프로그래밍을 할 수 있으므로, 실제로 나사의 화성 탐지선은 C언어로 프로그래밍되었다고 한다.

 

이러한 특징으로 인해 C언어는 임베디드, IOT 분야에서 주로 이용하는 언어이다.

 

C언어는 절차 지향 프로그래밍 언어이다.

절차 지향 프로그래밍이란 아주 간단히 말하면 여러 함수들로 이루어진 구조이다.

 

아래는 C로 작성한 절차 지향 프로그래밍 예시 코드이다.

add라는 함수를 정의하고, 이를 사용해 두 값을 입력받아 더하기 연산을 수행하는 코드이다.

 

// C언어 절차 지향 프로그래밍 예시

#include <stdio.h>

// 함수 정의
int add(int a, int b) {
    return a + b;
}


int main() {
    int result, num1, num2;
	
    // 두 수 입력받음
    scanf_s("%d%d", &a, &b);

    // 함수 호출
    result = add(num1, num2);

    // 결과 출력
    printf("덧셈 결과: %d\n", result);

    return 0;
}

 

 

 

 C++

 

 

프로그래밍에서 ++는 단항 증감 연산자 중 하나로, 값을 1만큼 증가시킨다는 의미이다.

여기서 볼 수 있듯이 C++은  C언어를 포함하고, 이를 확장한 언어로

C언어의 슈퍼셋이라 부르기도 한다.

 

그렇다면 어느 부분에서 C언어를 확장했다고 보는 것일까?

C언어는 절차 지향 프로그래밍을 지원한다.

반면 C++는 이러한 C언어의 특징을 포함하여 절차 지향 뿐만 아니라 객체 지향 프로그래밍도 지원한다.

따라서 C++에는 C언어에는 없는 class 문법이 존재한다.

 

아래는 c++로 작성한 객체지향 프로그래밍 예시 코드이다.

Rectangle 클래스를 정의하고, 객체를 생성하여 이용하는 코드이다.

// 객체지향 프로그래밍으로 Rectangle 클래스 정의하고 객체 생성 예시

#include <iostream>

// 클래스 정의
class Rectangle {
private:
    double width;
    double height;

public:
    // 생성자
    Rectangle(double w, double h) : width(w), height(h) {}

    // 넓이 계산
    double calculateArea() {
        return width * height;
    }

    // 둘레 계산
    double calculatePerimeter() {
        return 2 * (width + height);
    }

    // Getter와 Setter 함수
    double getWidth() {
        return width;
    }

    void setWidth(double w) {
        width = w;
    }

    double getHeight() {
        return height;
    }

    void setHeight(double h) {
        height = h;
    }
};

int main() {
    // Rectangle 클래스의 객체 생성
    Rectangle rect(5.0, 4.0);

    // 넓이와 둘레 출력
    std::cout << "넓이: " << rect.calculateArea() << std::endl;
    std::cout << "둘레: " << rect.calculatePerimeter() << std::endl;

    // 너비와 높이 변경 후 다시 출력
    rect.setWidth(7.0);
    rect.setHeight(3.0);
    std::cout << "넓이: " << rect.calculateArea() << std::endl;
    std::cout << "둘레: " << rect.calculatePerimeter() << std::endl;

    return 0;
}

 

 

 

C#

 

 

음악에서 #은 반올림을 뜻한다.

혹은 ++에서 ++을 더한, 즉 +기호 4개의 조합이기도 하다.

하지만 C#은 C언어와 C++과는 다른 언어이다. 오히려 JAVA와 비슷하다.

 

C#은 마이크로소프트가 자신들만의 개발 유니버스를 구축하기 위해 만든 언어이다.

따라서 MS는 닷넷이라 하는 윈도우 프로그램 개발 도구를 제공하는데 여기에서 C#을 이용한다.

 

보통은 유니티 등 게임 개발을 할 때 많이 쓰인다.

 

아래는 C#의 예시 코드이다.

이름을 입력받고, 이를 출력한다. 실제로 JAVA와 매우 유사한 것을 볼 수 있다.

 

// C# 예시코드

using System;

class Program
{
    static void Main(string[] args)
    {
        // 사용자로부터 이름을 입력 받음
        Console.WriteLine("이름을 입력하세요:");
        string name = Console.ReadLine();

        // 메시지 출력
        Console.WriteLine($"안녕하세요, {name}님! 환영합니다.");
    }
}

 

728x90
728x90

노마드 코더 챌린지를 통해 IT 잡학사전 읽기를 도전해보려 한다!

학부연구생을 하며 리눅스와 관련된 패키지만 다루다 보니,

개발 영역에 대한 지식이 상대적으로 많이 떨어진다는 것을 느꼈다. 또한 요즘 새로운 아이디어가 떠올라 앱 개발 구상도 하고 있기도 하고

 

백엔드나 DEVOPS 관련 지식들을 얕게 알아보고 그 다음으로 깊게 공부해보려 한다.

 

책을 매일 읽으며 알아낸 지식들은 조금 더 내용을 덧붙여서 포스팅할 예정이다. 

 

이 책을 하루하루 읽어나가며 리눅스를 벗어나 더 넓은 지식을 쌓아나갈 수 있기를!

 

728x90

+ Recent posts