분류 전체보기

    | 니앙팽이 - 객체지향(OOP) | 2-5 | 구조체

    📕 2. 객체지향 개발📄 5. 구조체1). 클래스 VS 구조체타입차이에 따른 메모리 할당ClassStruct타입ReferenceValue메모리할당HeapStackstack지역 변수를 저장하며, 실행 중인 함수를 찾아 계산을 수행함변수들은 Stack으로 저장(후입선출)heap참조 타입들이 이 곳에 할당된다.메모리 누수의 대상이 된다.2). 클래스 써버리지 뭘.. 왜?아까말했듯 클래스는 힙영역에 할당된다. 반대로 구조체는 Stack에 들어가므로 가비지컬렉터가 덜 일해도 된다. 메소드를 쓰지 않고 오직 데이터만 그룹 시키고 싶을때, 딱좋다~!그리고 생성자 오버로딩에 사용되기도 한다.3). 사용법구조체가 가능한것ⓐ 프로퍼티 : get, set예시class _className_ { _type_ _fildName_..

    | 니앙팽이 - 객체지향(OOP) | 2-4 | 클래스의 this & 메소드 체이닝

    📕 2. 객체지향 개발 📄 4. 클래스의 this 1). this 란... 🔍 클래스를 이용해 구체적인 제품으로 만든 Instance를 가르키는 것 그 인스턴스 그 자신의 참조 변수 2). 왜 쓰는건가? 🤔 Doc이나, 블로그 돌아나니면서 알아본 결과.. ⓐ 명시성 👁‍🗨 (Class 작성 관점) Class 메소드 작성시, 매개변수와 인스턴스의 멤버변수 명시적으로 구분하기 위해 this 사용 ex)매개변수와 멤버변수의 이름이 같습니다. 이럴때 this 를 사용하여 구분할 수 있습니다. /*클래스*/ class Foo { private int value; Foo(int value(매개변수) ){ /* value(멤버변수)= value(매개변수);*/?? 이런식으로 작성해도 괜찮긴한데 this.value(멤..

    | 니앙팽이 - 객체지향(OOP) | 2-3 | Static (클래스 멤버)

    📕 2. 객체지향 개발📄 3. Static1). 클래스 변수 & 인스턴스 변수?클래스 내에서 멤버변수(클래스에 포함된 변수)는 선언된 위치에 따라 2가지로 구분됨.클래스 변수 : static variable인스턴스 변수 : instance varibale2). 예시public class Enemy { static int mEnemyCount = 0; 클래스 변수 string mEnemyName; 인스턴스 변수 public Enemy(string _enemyName){ mEnemyCount++; this.mEnemyName = _enemyName;} } ................................................ static void Main(string[] args) { Ene..

    | 니앙팽이 - 객체지향(OOP) | 2-2 | 접근한정자

    📕 2. 객체지향 개발📄 2. 접근 한정자1). 한정자호출자의 위치publicprotectedinternalprivate클래스 내부 끼리✔️️✔️️✔️️✔️️파생 클래스 끼리 (Same 어셈)✔️️✔️️✔️️❌비파생 클래스 끼리(Same 어셈)✔️️❌✔️️❌파생 클래스 끼리(diff 어셈)✔️️✔️️❌❌비파생 내부 끼리(diff 어셈)✔️️❌❌❌2). 얜 뭐야? : Internalⓐ unity 에서 인스펙터 창에서 변수를 숨기고 싶을떄 사용 가능하기도 한다.근데 보통 [HideInInspector] 사용해야한다.ⓑ 개발 관점public이랑 비슷한데 같은 어셈블리끼리 공유가 된다.개발에서는 namespace가 다르다? 그렇다면 어셈블리가 다른것.어셈블리는 뭔 소리? ㅋㅋ;

    | 니앙팽이 - 객체지향(OOP) | 2-1 | Class & Instance

    📕 2. 객체지향 개발📄 1. Class & Instance1). new를 통해 Instance 생성new 연산자로 인스턴스(객체)를 만든다.(메모리 heap영역에) 데이터 저장 공간을 할당받고 -> 그 공간의 참조값(해시코드)를 객체에게 반환해준다. -> 이어서 생성자를 호출한다.2). 예시class Calculator //클래스(공장) { int left, right; public void setOprands(int left, int right){ this.left = left; this.right = right; } public void sum(){System.out.println(this.left + this.right);} public void avg(){System.out.println((th..

    | 니앙팽이 - C# | 1 | 어셈블리(Assembly)

    🔹 C# 어셈블리 🔹📄 1. 어셈블리가 뭐죠어셈블리어는 아니다. 컴파일되서 나온 파일을. C# 에서는 어셈블리(Assembly) 라고 부른다.exe, .dllexe 는 Main() 메서드를 포함하는(진입점) 형태이다.콘솔 실행이 가능하다. dll 은 반대로 진입점이 없는 형태이다.📄 2. ...그래서? 🤔✨ 이거 하나만 이해하자. ✨어셈블리가 같은 프로젝트여야 internal 한정자 접근이 가능하다!!...뭐가 대단한데📄 3. 어셈블리가 다른 [프로젝트 & 파일]GearHeart VS SoPhIA파일관점코드관점다른 exe라서다른 프로젝트라서우측 솔루션에 두개의 각각 코드의 Namespace가 다른것을 확인 할 수 있다.📄 4. 어셈블리가 같은 [프로젝트 & 파일]Namespace가 같은것이 같은 어셈블리..

    | 니앙팽이 - 객체지향(OOP) | 1 | 객체지향 프로그래밍

    📕 1. 객체지향 개요📄 1. 객체지향1). 다음과 같은 목적으로 사용하길 바란다재사용과 확장 (응용 프로그램의 상당 부분을 변경하지 않고도 추가하거나 업그레이드).유지보수📄 2. Class & Instance1). 클래스란?데이터 (속성, 상태, 변수, 자료구조) 와 함수 (메서드, 동작) 로 구성된것. 2). 클래스와 인스턴스의 관계?ⓐ Class : 집합 인스턴스의 공장, 인스턴스의 집합이다. : Class 집합의 원소로는 Instance가 있다. ⓑ Instance(Object) : 집합의 원소Class가 집합이면 이제 Type형태로 이루어진 Product이다. 📕 2. 주요 객체지향 개념1. 캡슐화 2. 상속 3. 다형성 4. 관계📄 1. 캡슐화① 변경이 된다라는것은?캡슐화 이야기를 시작하기 전..

    | 니앙팽이 - 네트워크 | HTTP | 개요 / 구성 / 매서드 / 상태 | 404가 뭐죠?

    🌐 클라이언트-서버 1. 용어 여기서 컴퓨터라함은 CPU, RAM이 있는 하드웨어다. 클라이언트 서버에 요청하는 컴퓨터 GET, POST 등등.. HTTP 메서드를 이용해 request 한다. 서버 클라이언트 요청을 늘 Listen 하는 컴퓨터. 요청에 대해 응답을 해주는 프로그램 데이터를 요구하면 데이터 보내주는프로그램 클라이언트-서버 Example > 카카오톡 < 1. 클라이언트 요청 채팅방에 메세지를 입력하고 전송 버튼을 누르는것 2. 서버 요청 응답 채팅방에 쓰여질 http 데이터를 제공(응답)해줌 🌐 URL 정의 Uniform Resource Locator : URL은 웹에 게시된 어떤 자원을 찾기위해 브라우저에서 사용된다. URL의 구조 http://www.example.com:80/path/..

    require으로 모듈 import 할때, 타입스크립트 IntelliSense / 자동완성 작동이 안된다.. & Json 세팅

    타입스크립트 & JSON 설정 https://skyksit.com/programming/nodejs/nodejs-set-typescript/ http://daplus.net/javascript-npm-스크립트를-순차적으로-실행/ 1. 타입스크립트 json { "compilerOptions": { "target": "ES5", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */ // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime envi..

    | 니앙팽이 - 자료구조 | 4 | 해시 테이블 노트

    해시 테이블 개요 접근 삭제 시간 복잡도 : O(1) 개빠르다 Collision : 동일한 key 값에 복수 개의 데이터가 하나의 테이블에 존재할 수 있게 되는 것 해시 함수 인덱스 값을 설정해주는 함수 보통 나머지연산은 큰 소수로 이뤄지면 좋다. 단 등가교환이 있다 과유불급 좋은 해시 함수는 최대한 Collsion이 적어야한다. Collsion이 많아지면 O(1)에서 O(n)으로 가까워진다. 그런데 너무 심각하게 Collsion이 있다면 메모리를 너무 차지하게 된다. Collsion의 해결 개방 주소법 linear 하게 버킷을 탐색한다 Double hashing probing 하나의 해쉬 함수에서 충돌이 발생하면 2 차 해쉬 함수를 이용해 새로운 주소를 할당한다. 분리 연결법 동일버킷 : 연결 리스트를..