| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
- 스토어드 프로시저
- SQL
- two pointer
- union find
- String
- DP
- MYSQL
- 그래프
- 다익스트라
- Brute Force
- Two Points
- Trie
- Dijkstra
- binary search
- 이진탐색
- Stored Procedure
- Hash
- Today
- Total
목록분류 전체보기 (431)
codingfarm
1.소개JavaScript는 Iterator를 반환하는 아래와 같은 메서드를 가지고 있을 경우 Iterable로 규정한다.이를 iteration protocol라 칭한다.[Symbol.iterator]() { return {next() {...}}; }대표적인 Iterable은 Array, Map, Set 등이 있으며,Iterator를 통해 for...of 문, 전개연산자, 구조 분해 등 다양한 기능들을 제공한다.2. Iterator특정 크기의 자연수 지연 생성하는 Iterator를 반환하는 일반함수를 구현해보겠다.function naturals(end: number = Infinity): Iterator { let n = 1; return { next(): IteratorResult { ..
1. 소개제너레이터(Generator) 는 함수의 실행을 중간에 멈췄다가 다시 이어서 실행할 수 있게 해주는 설계 방식(구조) 를 지칭하며,자바스크립트의 제너레이터 함수는 iterator를 사용함으로써 함수 내부 코드의 호출타이밍을 사용자가 제어할 수 있게 해준다.2. 문법2-1. function*자바스크립트에서 제너레이터 함수는 function* 키워드로 정의되며, 일반함수와 달리 한번에 끝까지 실행되지 않는다.함수호출시 iterator를 반환하며, next() 함수를 호출할때마다, yield return 지점까지 실행을 재개한다.(유니티 엔진의 코루틴처럼)function* generatorFunc() { yield 1; yield 2; yield 3;}const iterator = generat..
0. 소개반복자 패턴의 구현을 통해 객체지향언어가 함수형 패러다임을 구용하는 방식에 대해 알아보겠다.1. 반복자 (Iterator)반복자는 다수의 데이터를 순차적으로 꺼내어 처리할 수 있게 해주는 객체를 나타낸다.이를통해 사용자는, 특정 자료(트리, 집합, 맵 등)의 내부구조를 몰라도 데이터를 순회할 수 있다.1.1 반복자의 개념반복자는 필수적으로 다음 2가지 개념을 가진다.다음요소 가져오기 (next)남은 요소가 더 있는지 확인하기 (done)1.2 반복자의 특징메모리 효율적모든 데이터를 한번에 메모리에 올리지 않고 순회 가능자료구조와 순회방식 분리어떠한 자료구조에 대해서도 같은 순회 방법을 제공일관된 문법for, foreach 같은 반복문 사용이 가능해짐지연순회 제공순회방식을 객체로 캡슐화Iterat..
1. 소개three.js 에서 post-process를 구현하기 위해 주로 EffectComposer를 사용해왔다.간단한 효과의 경우, ShaderMaterial에 간단히 쉐이더 코드를 작성하지만,복잡한 효과는 Pass를 상속받는 클래스를 구현한다. r3f의 후처리는 주로 @react-three/postprocessing의 EffectComposer를 사용하며, 이는 Three.js addons의 EffectComposer 가 아니라, postprocessing 라이브러리의 Composer 를 감싼것이다.즉, addons와 postprocessing의 EffectComposer는 이름만 같을 뿐 완전히 다른 구현을 가진, 독립적인 대상이다. 2. addons의 EffectComposerThree.js의 ..
1. 소개그동안 실무에서 3d 개발을 위해 R3F를 중점적으로 사용해왔다.캔버스 사이즈 조절, 카메라 시야각 자동 설정, 렌더링 사이클 관리, 메모리 누수 방지, ray-cast 관리 및 이벤트 제공 등 바닐라 Three.js 에서는 제공해주지 않던, 굉장히 많은 편의성 기능들을 누리는 중이다.이전에는 renderer 생성 -> 캔버스 검색 -> html 엘리먼트 부착 -> 캔버스 사이즈 설정-> 카메라 사이즈 설정 -> 렌더링 사이클 호출 등. 복잡한 과정을 거쳐야 했기에, 간단한 테스트를 하나 수행하기 위해 보일러플레이트 코드를 통째로 복붙해야 했지만, 이제는 그저 컴포넌트를 만들고, 내부에 원하는 요소들을 추가하기만 하면 된다.하지만, R3F 컴포넌트를 통해 Three.js의 3d 객체를 정말로..
EffectComposer 는 후처리 파이프라인으로, 여러 개의 Pass가 순서대로 실행되어, 이전 Pass 결과를 다음 Pass가 입력으로 사용하며 덧그리는 방식으로 동작한다.동작 방식RenderTarget A에 렌더다음 Pass는 A를 입력(texture) 으로 사용결과를 RenderTarget B에 출력A ↔ B를 계속 스왑 (ping-pong)마지막 Pass만 화면(framebuffer)에 출력Pass의 공통 인터페이스pass.render(renderer, writeBuffer, readBuffer, deltaTime);rendererWebGLRendererreadBuffer이전 Pass의 결과 텍스처writeBuffer이번 Pass가 쓸 렌더 타겟deltaTime프레임 간 시간작성 예import..
0. 개요정의 : 여러가지 기능들을 그룹화 한 것용도 : 이름 충돌 방지, 코드 유지보수 용이차이점 : 추상화 레벨의 수준과 목적1. 패키지(Package)소스 코드 파일(.java)과 클래스(.class)를 논리적으로 묶는 단위클래스, 인터페이스 등의 자바 타입을 논리적으로 묶기 위한 이름 공간Java의 기본적인 네임스페이스이자 폴더 구조 단위.같은 패키지에 있는 클래스들은 기본 접근제한자(default) 로도 접근 가능.🎯 주된 목적네임스페이스 충돌 방지→ 동일한 클래스명이 여러 라이브러리에 있어도 구분 가능코드 조직화→ 관련 기능끼리 폴더 구조로 묶어 유지보수 용이접근 제어→ default 접근 제한자는 같은 패키지 내에서만 접근 가능src/ └── com/ └── example/ ..
1. 개요민감한(sensitive) 데이터를 사용자로부터 숨기는 설계방식을 지칭방법클래스의 변수나 메서드를 private로 선언한다.private 변수에 읽고/쓰기를 수행 하기 위해서, get/set 메서드를 제공한다public class Person { private String name; // private = restricted access // Getter public String getName() { return name; } // Setter public void setName(String newName) { this.name = newName; }}
1. 개요정의 : 클래스와 클래스의 멤버(필드, 메소드)에 부가적인 의미를 부여하는 예약어특징제어자의 종류에 따라 적용 가능 한 대상(class, attribute, method, constructor)이 다름적용 대상에 따라 기능적 의미가 조금씩 다름종류접근 제어자(Access Modifier) : 접근 수준을 통제ex) public, protected, privateNon-Access Modifier : 이외의 기능들을 통제ex) static, final, abstract 2. 접근 제어자(Access Modifier)classpublic : 다른 클래스에서 접근 가능default : 동일 패키지에 있는 클래스만 접근 가능attribute, method, constructorpublic : 모든 클..
https://www.w3schools.com/java/java_type_casting.asp W3Schools.comW3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.www.w3schools.com 특정 원시타입(Primitive Type)을 다른 타입으로 전환하는 기술Java에는 2가지 캐스팅 방식이 존재한다.Widening Casting (automatically) - converting a small..
1. split#include #include #include using namespace std;vector split(const string& str, char delimiter) { vector result; size_t start = 0; // 시작 인덱스 size_t end; while ((end = str.find(delimiter, start)) != string::npos) { result.push_back(str.substr(start, end - start)); // 부분 문자열 추출 start = end + 1; // 다음 시작 지점으로 이동 } // 마지막 토큰 처리 result.push_back(str.substr..
C++ 코드로순열, 중복순열, 조합, 중복조합을 구현하는 코드는 아래와 같다.#includeusing namespace std;void PrintArr(int *arr, int arrSize){ for (int i = 0; i
유니티 프로젝트가 저장된 폴더의 용량이 너무 크게 나와서 확인해보니, Library 폴더가 대부분을 차지하고 있음을 확인하였다. 정체https://discussions.unity.com/t/what-is-library-folder/922186https://docs.unity3d.com/530/Documentation/Manual/BehindtheScenes.html오피셜 문서의 설명은 아래와 같다.Unity reads and processes any files that you add to the Assets folder, converting the contents of the file to internal game-ready versions of the data. The actual asset files..
https://www.youtube.com/watch?v=JxP-kqstMAY&ab_channel=%EB%B2%A0%EB%A5%B4%EC%9D%98%EA%B2%8C%EC%9E%84%EA%B0%9C%EB%B0%9C%EC%9C%A0%ED%8A%9C%EB%B8%8C
USING LERP WITH DELTA-TIME https://www.construct.net/en/blogs/ashleys-blog-2/using-lerp-delta-time-924 Recently on the forums came up the question of how to use dt (delta time) correctly with lerp. This turned out to be a surprisingly tricky question, and is a good demonstration of how knowledge of maths comes in handy when designing games. Just to recap, lerp(a, b, x) is a system expression tha..
3D 2가지 방법 사용가능 Ray 사용 카메라에서 마우스를 향하는 ray와 plane을 상호작용하여 얻은 좌표에 오브젝트를 위치시킨다 게임이 플레이 되는 floor에 오브젝트 위치 가능 ScreenToWorldPoint 함수 사용 카메라에 투영되는 평면상에 오브젝트 위치 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 using System.Collections; using System.Collections.Generic; using UnityEngine; public class MouseChaser : MonoBehaviour { public Transform ob1, ob2; Vect..
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using UnityEngine.EventSystems; public class UIItem : MonoBehaviour, IPointerDownHandler, IPointerClickHandler, IPointerUpHandler, IPointerExitHandler, IPointerEnterHandler, IBeginDragHandl..
1. 렌더 엔진 쉐이더 작업전에는 우선 어느 Render Engine을 사용할지 부터 결정해야 한다. (각 렌더엔진 간에 머터리얼이 호환되는 부분도 있지만, 결국 각각의 엔진에 맞게끔 material을 설정해주어야 하므로) Eevee : PBR material, 물리기반 매터리얼을 실시간으로 표시가능 Workbench : solid shading 과 비슷한 프리뷰용 렌더엔진, lighting과 material이 적용 X Cycles : 느리지만 더 정확한 렌더엔진, 본 포스팅에서 사용 뷰포트 쉐이딩 모드 설정한 렌더엔진으로 실시간 렌더링 결과를 뷰 포트에 출력하기 단축키 Z를 누르면 여러가지 뷰포트 모드가 나오며, 그 중 Rendered 를 선택한다. 2. Material 1. Material Slot ..
Unit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 1..
보호되어 있는 글입니다.