반응형

프로그래밍 10

[C# 10.0] C#의 편리한 구문들 모음 (Syntax Sugar)

환영합니다, Rolling Ress의 카루입니다. 오늘은 C# 의 여러 편리한 문법들을 소개해드리려고 합니다. 처음에는 C# 코드들이 상당히 번잡하다는 느낌이 들었는데, 8.0부터 점점 간결해지더니 10.0 현재는 오히려 다른 언어들에 비해서도 상당히 깔끔해졌어요. 하나씩 살펴봅시다. ** C# 10.0에만 한정된 내용은 아닙니다. 7.x부터 9.0까지의 내용이 섞여있습니다. 1. 최상위문(Top-level statements) (C# 9.0) 사실 이건 쓸 일이 많지 않아보이는데, 그래도 간단한 테스트용으로는 충분히 요긴하게 쓸 수 있으니까 가져와봤습니다. C# 9.0 이상 환경에서 동작합니다. 기타 프로젝트에서는 을 Preview로 설정해주세요. using System; namespace Applic..

C# & .NET 2022.02.23

파이썬 코딩 효율을 크게 높여주는 7가지 팁들

환영합니다, Rolling Ress의 카루입니다. ​ 오늘은 파이썬입니다. 사실 제가 파이썬과는 연이 그다지 깊지가 않아서... 파이썬이 Type Reflection이 되던가요? VS에서 C# 쓰다가 VS Code로 파이썬 쓰려니 IntelliSense가 정말 좋지 않아서 못 쓰겠더라고요. 그래도 뭐...프로그래밍 입문자에게 파이썬을 많이 추천하는 추세니 글을 써볼까 합니다. ​ 초보자 분들부터 숙련자 분들에게까지 적용될 수 있는 팁을 두루두루 가져와봤어요. 아니다, 내용이 내용인지라 상당히 어려워요. 특히 마지막 switch 패턴매칭은 꽤 골치 아플 거예요. 그래도 중요하니까, 꼭 보고 가세요. ​ 목차 1. read_csv()를 웹에서 바로 2. 변수 선언 시 타입 사용 3. 함수의 파라미터 타입 제..

Python 2022.02.16

[셰어텍] 8. 회귀본능

환영합니다, Rolling Ress의 카루입니다. ​ ...오! 저 혼자 제 3세계로 떨어진 기분입니다. 남들 다 학교에 있는데 나 혼자 집이라니. (뭐 엄밀히 말하면 저만 조퇴한 건 아닙니다만...) 저는 그새 정말 바쁜 하루를 보냈습니다. 그리고 마침내 들려오던 우리 셰어텍의 절규.... 처음으로 돌아가자! ShareTech, 2021/10/29 그래요. 계획이 망가지는 것. 이 얼마나 멋진 일입니까? 아, 물론 그건 내 계획이 아니라는 전제 하에. 저런... 이건 우리 계획이죠. .....그래요. 뭐, 그럴 수 있습니다. 사실 저는 신경 쓰지 않으셔도 됩니다. 제가 뭐 GTT 개발하면서 갈아엎은 게 한두번일까요. 이런 상황은 익숙하거든요. 원래 무언가를 개발한다는 게 쉬운 일은 아닙니다. ​ 셰어텍..

[C++ 심화 강좌] C++20 <=> Three-way 비교 연산자

환영합니다, Rolling Ress의 카루입니다. ​ 사실 작성한 건 3월...? 정도인데, 어쩌다가 이제서야 올리는지...아무튼 시작하겠습니다. 드디어 이걸 포스팅하는 날이 오네요. 제가 이해하는데도 상당한 시간이 걸린, Three-way Comparsion Operator 입니다. 이건 다른 것보다 클래스에서 비교 연산자를 만들 때 특히 도움이 되겠더라고요. , =, ==, != 정의할 필요 없이 auto operator 한방이면 끝납니다. ​ 일단 이게 무엇인지는 알아야겠죠. 그 전에, 중학교 3학년 수학에서 배우셨을 법한 실수의 대소비교에 대해서 알아보도록 하겠습니다. ​두 실수 a, b에 대해 반드시 위 세 가지 중 하나가 성립하죠. 한 실수에서 다른 실수를 뺀 값을 0과 비교하면 크기를 알 수..

3학년 정규동아리를 준비하며: 프로그래밍 & 앱 개발 동아리

환영합니다, Rolling Ress의 카루입니다. ​ 2021년을 기점으로, 고양국제고 학생들은 1&2학년에 정규동아리 활동을 하고 3학년에는 자율적으로 정규동아리를 개설해서 활동합니다. 1&2학년들의 정규동아리는 오래전부터 내려오는 "전통적인" 동아리고, 3학년의 정규동아리는 자율동아리 성격이 조금 더 강합니다. 덕분에 훨씬 다양한 주제로 활동을 할 수가 있죠. ​ 그래서 저도 3학년이 되면 동아리를 새로 개설하려고 합니다. 제 진로와 맞추는 게 가장 좋으니까요. 그래서 뜻이 맞는 친구들과 함께 "프로그래밍 & 앱 개발 동아리"를 창설하려고 합니다. 물론, 이름은 나중에 달라질 수 있습니다. (그렇다고 'OverXYZ'나 'Rolling Ress+'나 'NOCHES++'를 쓸 수는 없잖아요) ​ 제가 ..

[C++심화 강좌] C++20 모듈 사용하기

환영합니다, Rolling Ress의 카루입니다. ​ 처음에는 무척 기다렸고 신기한 기능이었는데, 막상 추가가 되니까 생각보다 별 감흥이 없네요. 아니면 요즘 제가 UWP 앱 개발 중이라 C#에 너무 에너지를 쏟고 있는 탓인지도 모릅니다. 비주얼스튜디오에서 C#을 사용할 땐 정말 막강한 인텔리센스를 제공하죠. ​ 그래서 말인데, 오늘 할 얘기도 인텔리센스에 관해 먼저 이야기하겠습니다. 우선 몇 년 전과는 달리 최근에는 모듈 지원이 대폭 강화되면서 ixx 파일에 대한 인텔리센스도 제공이 됩니다. 심지어 모듈을 import 한 후에도 인텔리센스가 되긴 되는데, 클래스 내부 멤버들까지는 모르는 것 같아요. 컴파일은 잘 되는데 소스 편집기에서 빨간 줄이 사라지지 않는 요상한 상황이 발생합니다. ​ 아무튼, 아실..

C# 9.0: switch의 기능, 이젠 이런 것까지?

환영합니다, Rolling Ress의 카루입니다. ​ 에...제 주력 언어는 원래 C++입니다. 그런데 요즘에 UWP 앱을 개발하면서 (거의 반 강제적으로) C#을 쓰게 되었는데, 재밌네요. 특히 비주얼 스튜디오에서 제공하는 C#의 강력한 인텔리센스 기능과 자동 완성 등이 너무 편해서 당분간은 C#을 애용하게 될 것 같습니다. ​ 오늘은 제가 특히 편리하다고 생각하는 C#의 문법 중 switch에 대해서 알아보겠습니다. 사실 'switch ~ case' 자체는 다른 언어에서도 종종 나와서 익숙하신 분들이 많을 겁니다. 주어진 식에 따라 분기를 나누는 역할을 하죠. int flag = 3; switch (flag) { case 1: DoFunc1(); break; case 2: DoFunc2(); brea..

C# & .NET 2021.05.14

카루가 프로그래밍 언어를 만든다면? Ola 언어 소개

프로그래밍을 하면서, "아, 내가 한 번 프로그래밍 언어를 만들면 어떨까?" 라는 생각을 한 번이라도 하셨나요? 그렇다면 반갑습니다. 저도 그래요. ​ C/C++/Go언어를 맛보면서, 이들만의 장점을 합치면 정말 어마어마한 언어가 탄생할 것 같았습니다. 물론 그게 말처럼 쉽진 않지만, 일단 제가 작성한 컨셉 사진들을 봐 주세요. ​ 말 그대로 "컨셉"입니다. 실제로 존재하는 프로그래밍 언어가 아닙니다! Ola 언어의(Over LAnguage) 기능을 간단하게 소개합니다. 더 간단해진 main() 함수, var/ptr/ref/arr/func/type 키워드, 향상된 for문, 쉬운 주석, 헤더 없는 print/scan 연산자, 그리고 C/C++/C#/Go의 편리한 기능 탑재 등등이 있는데요, 일단 하나하나..

기타 2021.05.13

[C++11] 템플릿으로 배열을 함수에 넘기기

C언어에서, 배열을 함수로 전달하려면 어떻게 해야 했죠? 네. 맞습니다. 바로 포인터를 이용하는 것인데요, void func(int arr[], int size); void func(int *arr, int size); 위와 같이 arr은 포인터 (첫번째줄도 사실 포인터입니다) 로 받고, 배열의 크기는 알 수 없으므로 따로 정수형의 size매개변수를 따로 받았죠. 하지만 이 방식에는 단점이 있습니다. 일단 배열의 사이즈를 모르기 때문에 직접 size로 넘겨야하는 게 가장 큰 문제인데요, ​ C++에서는 템플릿을 통해 문제를 해결합니다. template void func(int (&arr)[N]); 다른 타입을 받고 싶다면 int부분을 수정해주면 됩니다. int (&arr)[N]이 생소하실 수 있는데, 하..

C++ 2020.03.21

[카루의 C++ 강좌] 1-1. C++ 프로그램의 시작, main() 함수

C++ 프로그램에서, main() 함수는 특별한 존재로 취급받고 있습니다. 프로그램에 단 하나만 존재해야 하며, 반환값은 int이고 프로그램이 실행할 때 가장 먼저 실행되는 함수이죠. (물론 이 말은 틀립니다.. 전역 클래스의 ctor가 더 먼저 실행이 되지만..) ​ 저번 시간에 봤던 이 코드, 기억하시나요? #include int main() { std::cout

반응형