본문 바로가기
반응형

분류 전체보기76

[git] git 설치를 끝냈다면 git 설정 (feat .gitconfig) git 설치를 이전 포스팅을 통해서 완료하셨다면, 큰 산을 하나 넘으신 것입니다. 제가 항상 느끼는 것이지만 설치 및 환경설정이 제일 어려운 것 같습니다. 혹시나 아직 설치를 진행하시지 않았다면 git 설치 포스팅 보고 오시면 좋을 것 같습니다! [git] 리눅스(CentOS, Ubuntu) git 자동/수동 설치git은 정말 많이 쓰이게 되는데 생각보다 친해지기 어려운 것 같습니다. Git에 대해서 디테일하게 접근을 해보려고 합니다. 오늘은 리눅스에 git 설치하는 방법에 대해서 포스팅을 하려고 합니다.77monkey.tistory.com 오늘은 git 설치를 끝낸 다음에 해야할 작업인 git 환경설정에 대해서 이야기해보려고 합니다. 생각보다 별 내용이 없다고 생각할 수 있지만 해당 내용을 진행하지 않.. 2024. 6. 24.
[git] 리눅스(CentOS, Ubuntu) git 자동/수동 설치 git은 정말 많이 쓰이게 되는데 생각보다 친해지기 어려운 것 같습니다. Git에 대해서 디테일하게 접근을 해보려고 합니다. 오늘은 리눅스에 git 설치하는 방법에 대해서 포스팅을 하려고 합니다. 보통 회사에서는 서버 관리자가 있어서 기본적으로 git이 설치되어 있지만, 회사가 아닌 본인의 로컬 pc에서 개발환경을 설치할 때면 git을 설치해야 할 수도 있습니다. git 설치 여부 확인사용하시는 배포판에 따라서 git이 설치가 되어 있을 수 도 있고, 그렇지 않을 수 도 있습니다.git이 설치가 되어 있는지 확인하는 게 먼저입니다. 사용하시는 리눅스에 상관없이 git이 설치되어 있다면 아래와 같이 확인하실 수 있습니다. $ git --version  저는 WSL2에 VS code를 연결하여 아래와 같이 .. 2024. 6. 23.
[C/C++] call by value VS call by reference [C/C++] 포인터(Pointer) 개념에 대해서 포스팅을 했었는데, 혹시 기억하시나요? 포인터를 배우면 가장 많이 헷갈리는 부분이 call by reference와 call by value 개념에 대해서 이해를 할 수 있게 됩니다. 코딩을 처음 할 때 가장 헷갈린 부분인데 해당 부분에 대해서 오늘 알아보도록 하겠습니다. 이 부분을 잘 이해해야 원하는 결과를 얻을 수 있습니다.  사전 지식caller는 함수 호출하는 함수를 의미하고, callee는 호출되는 함수를 의미합니다.아래 그림과 코드를 잘 보시면서 따라와 주시길 바랍니다. 참고로 편의상 memory를 간략하게 작성했지 실제로 그림과 같이 저장되지는 않습니다.void a_function(int a) { printf("a_function: %p\n.. 2024. 5. 15.
[C/C++] printf 함수의 모든 것 개발을 하거나 코딩 테스트를 할 때 가장 많이 하는 것은 아마 디버깅일 것이라고 생각됩니다. 한 번에 딱 원하는 코드를 작성하면 좋지만, 그렇지 않을 경우에 디버깅을 많이 하게 됩니다. 이럴  때 유용하게 사용되는 것이 printf로 출력하는 것이라고 생각됩니다. 이번 포스팅에서는 printf 함수에 대해서 알아보려고 합니다.  printf 함수printf 함수는 아래와 같은 구조로 되어 있습니다. int printf(const char * format, ...); printf 함수 형식 지정자printf 함수의 형식 지정자는 아래처럼 구성되어 있습니다.%[flags][width][.precision][length][specifier] flags왼쪽 정렬 등 출력 형태를 지정합니다.flagsdescrip.. 2024. 5. 15.
[C/C++] 포인터(Pointer) 개념 C언어에서의 꽃은 포인터라는 말을 들어보셨나요? 오늘은 포인터가 무엇인지에 대해서만 다뤄보도록 하겠습니다. 포인터라는 개념을 잘 잡게 된다면 포인터를 이용한 코드들을 이해하는데 큰 도움이 될 것이라고 생각합니다.  포인터(Pointer) 개념포인터(Pointer)란?포인터는 메모리 주소를 저장하는 변수입니다. 즉, 포인터 변수가 가지고 있는 값은 메모리 주소이고, 여기에 어떤 방법을 쓰게 되면 가지고 있는 메모리 주소가 가리키고 있는 값을 접근할 수 있습니다. 이렇게 설명하면 이해하기 어렵기에 예를 들어보도록 하겠습니다.32bit 운영체제에서는 주소 단위가 4 Byte입니다. 64bit 운영체제에서는 주소 단위가 8 Byte입니다. 아래 그림에서는 32bit 운영체제에서의 예시라서 말씀드리게 되었습니다... 2024. 5. 13.
[C/C++] inline 함수 지난 시간에 함수에 대해서 배웠습니다. 이번에는 inline 함수에 대해서 배워보도록 하겠습니다. inline 함수라는 이름에서 알 수 있듯이 함수를 in + line 하겠다는 느낌이 오지 않으신가요? 그럼 inline 함수에 대해서 알아보도록 하겠습니다.  inline 함수inline 함수는 함수 호출의 오버헤드를 줄이기 위해 컴파일러에 의해 해당 함수의 코드를 호출하는 곳에 직접 삽입되는 함수입니다. 호출되는 함수의 코드가 복사되어서 함수를 호출하는 곳으로 복사가 된다고 생각하시면 됩니다. 이렇게 되면 함수를 호출하기 위해서 시스템 내부적으로 동작되는 부분이 사라지고 바로 코드가 실행되기 때문에 실행 속도가 향상됩니다.  inline 함수 예시지난 포스팅에서 선언한 예시를 가져왔습니다. 다른 점이 하.. 2024. 5. 2.
[C/C++] 함수(function) 지금까지는 main 함수에서 모든 코드를 작성하여 코드를 작성했습니다. 이제는 main 함수가 아닌 다른 함수들을 만들어 보려고 합니다. main 함수를 통해서 대략적인 구조는 아셨을 텐데 조금 더 구체적으로 알아보도록 하겠습니다.   함수 정의함수를 정의하는 방법은 간단합니다. 먼저 해당 함수가 reutrn 하는 타입을 작성합니다. 그리고 해당 함수에서 원하는 동작을 함수 이름으로 작성합니다. 마지막으로 해당 함수를 부를 때 필요한 매개변수를 작성합니다. 그리고 중괄호를 작성해야 함수의 기본 뼈대가 완성됩니다.ruturn_타입 함수_이름(함수_매개변수) { //코드} 함수 정의 예시간단하게 정수 2개를 입력받아 더하는 함수를 만들어 봅시다. 가장 먼저 해당 함수의 이름을 무엇으로 할까 고민을 해봐야할 .. 2024. 5. 2.
[Rust] 쉐도잉(shadowing) Rust 쉐도잉(Shadowing)에 대해서 알아보도록 하겠습니다. 쉐도잉(Shadowing)이란? 쉐도잉(Shadowing)은 동일한 이름의 변수를 새로운 값을 가진 새로운 변수로 다시 정의하는 것을 의미합니다. 새로운 변수가 이전 변수를 가리게 되어서 쉐도잉(Shadowing)이라고 합니다. 코드를 통해서 좀 더 알아볼까요? 쉐도잉(Shadowing) 예시 아래 코드를 보시면, let을 통해서 x를 선언하게 됩니다. x는 bool 타입으로 선언이 되었고, 이를 출력하면 x: true가 출력되게 됩니다. 그리고 다시 let을 통해서 x를 &str 타입으로 선언해 줍니다. 그러면 x: monkey가 출력되게 됩니다. 좀 더 설명을 해보자면, true 값을 가진 x는 monkey 값을 가진 x가 선언이 되.. 2024. 4. 9.
[Rust] 포인터 타입 => 레퍼런스/박스/원시 포인터 Rust에서 포인터 타입은 크게 3가지로 나뉩니다. Rust에서 포인터 타입은 C/C++에서처럼 포인터가 null이 되거나 중복 해제 등과 같은 일이 발생하지 않습니다. 그렇기 때문에 사람이기 때문에 하는 실수를 사전에 방지할 수 있습니다. 단, unsafe 블록을 사용하는 순간 안전성은 개발자에게 넘어오게 됩니다. 물론 보통의 경우에는 unsafe를 사용하지 않겠지만 말입니다. 레퍼런스(&) 레퍼런스는 C/C++에서의 포인터와 유사합니다. 그렇기 때문에 &var를 쓰고 *var를 함으로써 var이 가지고 있는 값을 접근할 수 있습니다. 이러한 레퍼런스는 2가지로 나뉩니다. 불변 참조(&T)와 가변 참조(&mut T)입니다. 불변 참조는 데이터를 읽을 수는 있지만 수정할 수 없고, 가변 참조는 데이터를 .. 2023. 10. 9.
반응형