전체 글

스프링부트, 아키텍쳐, 알고리즘
· 언어/C++
기존 변수에 새 이름을 지정해주는 용도 변수에 타입 뒤에 &를 붙이면 그 변수는 레퍼런스가 된다. 개발자가 코드에서 다루는 방법은 일반 변수와 같지만 내부적으로는 원본 변수에 대한 포인터로 취급한다. int x = 32; int& x_refer = x; 이게 왜있나 싶을 수도 있는데, 함수에 매개변수로 전달하는 과정에서 유용하게 사용된다. 레퍼런스 전달 방식 일반적으로 함수에 매개변수로 전달한 변수는 값 전달 방식(pass by value)로 처리된다. 즉, 함수에 전달되는 과정에서 복사가 일어난다! 이는 일반적으로 함수에 매개변수로 전달된 원본 객체의 필드나 변수의 값을 변경할 수 없도록 방어한 조치인데, 만약 원본 변수의 값을 변경하는 함수를 만들고 싶다면 C언어에서는 복잡한 포인터 연산을 수행할 수..
· 언어/Dart
Dart 언어에는 Null-Safety라는 개념이 존재한다. Null-Safety 는 변수의 초기화와 깊은 관련이 있는데, 코드로 확인해보자 int notnull = 3; print(notnull); >> 3 정상출력 int notnull_notInit; print(notnull_notInit); >> Non-nullable varaiable must be assigned before it can be used. 초기화되지 않은 정수 변수를 출력하려고 하니 에러가 발생한다. null을 가질 수 없는 객체는 사용되기전에(매개변수로 전달되거나 하는) 초기화되어야한다는 의미인데, 말 그대로 초기화되지 않았으니 null이라고 우선 칠까? X 초기화되지 않았고 null을 허용하지 않는 변수이므로 초기화되기 전에 ..
· 언어/C++
어떤 변수의 타입 뒤에 &를 붙이면 그 변수는 참조 변수가 된다. 개발자가 코드에서 다루는 방법은 일반 변수와 같지만 코드 내부적으로는 변수에 대한 포인터로 취급된다. int x = 32; int& x_refer = x; 이게 왜있나 싶을 수도 있는데, 주로 함수에 매개변수로 전달하는 과정에서 유용하게 사용된다. 레퍼런스 전달 방식의 원본값 변경에 대한 이점 만약 원본 변수의 값을 변경하는 함수를 만들고 싶다면 C언어에서는 복잡한 포인터 연산을 수행할 수 밖에 없었다. 하지만 C++에서는 포인터 연산 대신 레퍼런스 전달 방식을 활용하면 편리하다. 아래는 예시 #include #include using namespace std; class Me { public: int number; Me(int num) ..
서병렬
서병렬 개발