전체 글

병아리 코드 개발자, 코드둥
다향성, 우리가 아는 함수명은 절대적으로 하나만을 갖고 있는 게 정상인데요, 이 다향성은 그 룰을 파괴합니다. 오버로딩 오버로딩은 같은이름의 함수지만 매개변수의 갯수나 타입에 차이가 있는 경우를 말합니다. int Plus( int a , int b) { return a + b; } char Plus( char a, char b) { return a + b; } 위 두 함수는 리턴함수의 타입이 다르므로 다른 함수라고 볼 수 있습니다. int Plus( int a , int b) { return a + b; } int Plus( int a , int b, int c) { return a + b + c; } 위 두 함수는 매개변수의 갯수가 다르므로 다른 함수라고 볼 수 있습니다. 결과적으로 함수명이 같아도 타..
객체지향이란? 객체는 우리가 object라 불리며 사물을 나타내는 추상적인 개념입니다. 지향은 말 그대로 어디로 향한다는 말인데요, 객체를 향하여 무슨 뜻일까요? 모든 것을 객체로 만든다는 것입니다. 집이라는 사물이 있습니다. 이 집을 이루는 방, 소품, 침대, 책장 기타 등등 집이라는 객체를 이루고 있는 것들 또한 객체를 말하는 것입니다. 객체를 통해서 새로운 객체를 생성하고, 객체를 변형하기도 하는 것이 객체 지향이 아닐까요? 🔻객체 지향 이전의 프로그래밍 방식 더보기 이전 프로그래밍 방식은 구조적 프로그래밍이라 불렸습니다. 구조적 프로그래밍은 코드의 흐름이 한방향으로 흐르기 때문에 순차적, 하향식, 폭포수방식이라고 불렀으며, 단위는 함수 단위였습니다. 잘 생각해 보면 우리가 작성한 코드들이 여기에 ..
우리가 기본적으로 배운 타입들 외에도 사용자의 편의에 맞춰서 정의한 타입들이 존재합니다. 1. 구조체 2. 공용체 3. enum 4. class 5. interface 이렇게 총 5가지의 사용자 정의 타입이 존재하는데요. 이 페이지에서는 인터페이스에 대해서 다뤄보도록 하겠습니다. interface(인터페이스) 인터페이스는 메서드의 목록만 가지고 있는 명세를 말합니다. 이때 메서드의 목록은 선언만 할 뿐 코드가 따로 없기 때문에 독립적으로 사용이 불가능하며 반드시 다른 클래스에 상속을 받아야 합니다. (인터페이스끼리도 상속이 가능하지만 마찬가지로 코드가 따로 없다.) 인터페이스의 형태 public interface Iinter : oldIinter //상속받는 인터페이스는 있어도 없어도 상관없습니다. { ..
우리가 기본적으로 배운 타입들 외에도 사용자의 편의에 맞춰서 정의한 타입들이 존재합니다. 1. 구조체 2. 공용체 3. enum 4. class 5. interface 이렇게 총 5가지의 사용자 정의 타입이 존재하는데요. 이 페이지에서는 class에 대해서 다뤄보도록 하겠습니다. class(클래스) 객체지향의 총집합이라 할 수 있는 클래스는 데이터와 메서드를 정의한 데이터 타입입니다. 때문에 추상적인 타입이라고도 할 수 있는데요. 클래스는 구조체와 유사하게 생겼습니다. 클래스 자체는 사물의 특성 추상화하여 변수와 메서드로 정리하였고, 지정한 변수들을 보호하고 메서드로 데이터의 조작을 할 수 있게 만들어 캡슐화에 해당되기도 합니다. 또한 클래스끼리 상속을 할 수도 있으며 같은 class 내에서 같은 함수명..
우리가 기본적으로 배운 타입들 외에도 사용자의 편의에 맞춰서 정의한 타입들이 존재합니다. 1. 구조체 2. 공용체 3. enum 4. class 5. interface 이렇게 총 5가지의 사용자 정의 타입이 존재하는데요. 이 페이지에서는 공용체와 enum에 대해서 다뤄보도록 하겠습니다. 공용체란? 공용체는 구조체와 비슷한 성질을 띄는 사용자 정의 타입입니다. 공용체와 구조체의 차이에는 메모리 공간을 어떻게 사용하는지에 있는데요. 이렇게 구조체는 각각의 변수들이 따로따로 크기를 차지하고 합쳐진 메모리를 사용한다면 공용체는 변수중 가장 큰 메모리만큼의 공간을 공유합니다. 공용체의 형태 union 공용체 { 공용체변수 } 이와 같이 구조체와 공용체가 서로 다른 타입의 데이터들을 모아놨다면 열거형태인 enum은..
우리가 기본적으로 배운 타입들 외에도 사용자의 편의에 맞춰서 정의한 타입들이 존재합니다. 1. 구조체 2. 공용체 3. enum 4. class 5. interface 이렇게 총 5가지의 사용자 정의 타입이 존재하는데요. 이 페이지에서는 구조체에 대해서 다뤄보도록 하겠습니다. 구조체란? 배열에는 하나의 타입들을 여러 개 모아놓았다면, 구조체는 서로 다른 타입의 변수들을 모아놓은 사용자 정의 타입을 말합니다. 보통 정수형 타입이다 하면 정수형으로 타입이 딱 정의가 되는데 구조체는 여러 타입의 모여있다 보니 정확한 값을 알 수 없어 추상적이라 볼 수 있습니다. 구조체를 사용하는 이유를 꼽으라 하면 연관된 변수를 한번에 관리하기 때문에 데이터 관리하기 유용하여 데이터가 많아질수록 구조체가 유리해집니다. 예시)..
이전에 작성한 포인터와 함수랑은 다른 개념으로 함수포인터는 포인터를 함수에 설정을 하는 것으로 포인터와 마찬가지로 *기호를 사용하고 함수의 주소값을 저장합니다. 즉, 함수포인터는 함수가 아니라 함수의 주소값을 담고 있는 변수를 뜻합니다. int Add(int a, int b){ return a + b; } int (*func)(int x, int y); func = &Add; int result = func(3,4); // 7 이때 대입한 함수는 타입과 형식이 같아야합니다. 왜냐하면 대입한 함숫값을 함수포인터에 넣었기 때문에 간접참조가 되어 함수포인터를 통해 참조한 함수를 실행시켜 return값을 돌려받기 때문입니다. 우리가 플러그인을 사용할때 어떻게 사용을 하나요? 플러그인 설치했다고 해서 프로그램 전..
오늘 배운 내용 📚 React를 통해 간단한 사이트 제작하기 기본적인 JSX 문법 컴포넌트와 state React의 반복문과 조건문 props 통한 동적바인딩 리액트를 이용하여 간단한 웹사이트를 만들어보는 시간을 가졌습니다. 강사님이 코드를 작성하기 전에 미리 기능을 구현을 해보는 과정에서 다양한 에러를 만나보았는데 그중 기억에 남는 에러는 onClick 이벤트였습니다. // 기존 자바스크립트 사용방식 Activate Lasers // 리액트 사용방식 Activate Lasers 이때 문제가 됐던 부분은, onClick 할 때 매개변수가 존재할 때였는데, 자바스크립트에서는 onclick="함수()" 이렇게 작성을 했다면 리액트에서는 onClick={함수()} 이렇게 작성을 하게 되면 에러가 발생을 하는데..
데브코스를 진행한 지 두 달이 지났습니다. 12월에 시작한 도서 API를 시작으로 개인 프로젝트를 주제 선정을 했습니다. 도서 API를 진행하면서 수업진도를 따라가는 게 버거워지고 조금씩 밀리게 됐습니다. 초반에 따라가는데 문제가 없었지만, 백엔드 수업이 끝나고 강사님의 조언대로 기존에 작업한 프로젝트를 조금 더 세분화하는 과정에서 시간이 많이 들게 되었습니다. 일단 문제점은 컨트롤러를 서비스와 모델로 나누면서 생기기 시작했습니다. 수업에서는 컨트롤러에 모든 작업을 진행하였는데요. 이후 분할을 하면서 컨트롤러와 서비스 모델에서 어떤 코드들을 관리하는지, 어떻게 작업을 하는지에 대해서 충분한 설명이 없었습니다. 때문에 검색을 통하여 로직분리를 시행하였는데요. 검색으로만 코드를 분리한 거 기 때문에 제가 짠..
코드둥
코드둥 개발적응기