Machine Learning with gh
<br> Optimising Façade of paneling with Machine Learning. 기계학습 알고리즘을 이용한 입면 패널링 최적화 <br> <p align='center'><img src = "https://velog.velcdn.com/images/1ncarnati0n/post/1afbe05f-cb8
왼쪽에서는 `contents/blog` 트리 구조 그대로 글을 탐색하고, 오른쪽에서는 각 문서의 핵심 요약을 빠르게 훑어볼 수 있습니다.
<br> Optimising Façade of paneling with Machine Learning. 기계학습 알고리즘을 이용한 입면 패널링 최적화 <br> <p align='center'><img src = "https://velog.velcdn.com/images/1ncarnati0n/post/1afbe05f-cb8
Numpy, Pandas, Scikit-learn Rhino8을 설치 후 C:\Users\내컴퓨터이름\.rhinocode\py39-rh8\Scripts 폴더를 확인하면 pip.exe 등의 파일들을 확인할 수 있다. 이후 윈도우의 CMD실행, cd C:\Users\내컴퓨터이름\.rhinocode\py39-rh8\Script
기본 자료형 3가지: 숫자형(Number), 문자열(String), 불린형(Boolean)과 각 자료형에 사용하는 연산자 숫자형(Number) 정수와 소수를 숫자형이라고 합니다. 선언 수학 연산 대부분의 수학 연산은 파이썬과 완전히 똑같습니다. 유일한 예외 케이스는 파이썬의 버림 나눗셈(//)인데요. 자바스크립트에는 버림
자바스크립트 코드 실행하기 자바스크립트를 실행하려면 HTML 파일(.html)과 자바스크립트 파일(.js)이 필요합니다. 자바스크립트 파일에는 자바스크립트 코드를 작성하고, HTML 파일에서 자바스크립트 코드를 불러옵니다. main.js index.html 이번 토픽은 HTML을 배우는 과정은 아니기 때문에 HTML 코드
조건문 (if, else, else if) if, else, else if를 사용하면 조건에 따라 코드의 흐름을 제어할 수 있습니다. 문법 조건은 소괄호 ()로 감싸주고 조건을 만족했을 시 실행할 코드는 중괄호 {}로 감싸줍니다. 필요에 따라 else if, else는 생략할 수 있습니다. if 예시 if-else 예시
“자바스크립트의 모든 것이 다 객체다”라는 말이 있습니다. 자바스크립트라는 언어가 구현된 방식 덕분에 객체가 아닌 다른 자료형도 객체처럼 사용할 수 있는데요. 이게 무슨 말이냐 하면, 다른 자료형에도 여러 유용한 프로퍼티나 메소드를 사용할 수 있다는 겁니다. 사실 배열은 이미 여러 프로퍼티와 메소드를 사용해 봤는데요. a
배열 <sup>array</sup> 배열(array)은 여러 값을 일렬로 저장하는 것입니다. (파이썬의 리스트와 비슷합니다.) 선언 대괄호로 선언합니다. 인덱싱 0, 1, 2 같은 요소의 위치를 인덱스라고 하고, 인덱스로 요소를 접근하는 과정을 인덱싱이라고 합니다. 배열의 길이는 .length로 접근할 수 있습니다. 배열
사용자가 따로 정의하지 않아도 자바스크립트가 미리 가지고 있는 객체들도 있는데요. 이런 객체들을 내장 객체, 영어로는 standard built-in objects라고 합니다. 개발자들이 많이 필요할 만한 기능들을 모아서 객체 형태로 저장해 놓은 건데요. 마치 파이썬의 스탠다드 라이브러리(standard library)와
로이 필딩은 논문에서 REST의 제약 조건으로 다음과 같이 6가지를 제안하였습니다. 각각의 의미를 간단하게 살펴보도록 할게요. 첫 번째 제약 조건: Client-Server(클라이언트-서버) API를 통해 정보를 교환하는 주체는 클라이언트와 서버 구조를 가져야 한다. 클라이언트와 서버의 분리를 통해 서로 의존하지 않는 구
REST의 '자원의 식별' 제약 조건은 접근하고자 하는 자원을 명시하고, 그 자원을 식별할 수 있어야 한다는 내용을 담고 있습니다. 웹에서는 URI를 사용하여 자원에 대한 식별을 하고 있는데요. URI에 제어하고자 하는 자원에 대해 명시하고, 그 자원을 식별할 수 있는 변하지 않는 ID과 같은 식별자를 URI에 포함하여야
POST, PUT, PATCH POST, PUT, PATCH는 HTTP 리퀘스트에서 HTTP 메소드가 다른 것 이외의 기술적인 차이는 없습니다. 이 3가지를 구분 짓는 기준은 단순한 의미상(시멘틱, Semantic) 구분이며, 아래의 두 HTTP 스펙에 명시되어 있습니다. 해당 문서를 모두 읽어 볼 필요는 없는데요. 내용
상태 코드는 자주 사용되는 코드부터 시작하여 잘 사용되지 않는 코드까지 그 수가 정말 많은데요. 이번 레슨에서는 자주 사용되는 상태 코드 위주로 살펴보겠습니다. 더 많은 상태 코드들은 MDN의 HTTP 상태 코드 문서 또는 RFC 2616에서 확인해 보세요. 상태 코드의 종류가 많다고 해서 너무 걱정하지 마세요. 자주 사
기본형 종류 타입 --- --- 문자열 string 숫자형 number 불린형 boolean undefined undefined null null 배열과 튜플 배열 타입을 만들려면 타입을 적고 []를 붙입니다. 만약에 배열의 배열을 만들고 싶다면 배열 타입 뒤에 []를 붙이면 됩니다. 튜플은 개수랑 순서가 정해져 있는 배
Enum 중괄호 안에서 각 항목을 쉼표로 구분해서 적어주면 됩니다. 이때 기본값은 0부터 시작하는 정수라는 점에 주의하세요. 숫자 0은 실수하기 쉽기 때문에 Enum을 사용할 땐 되도록이면 값을 정해놓고 쓰는 게 좋습니다. 이퀄이랑 쉼표를 쓰면 값을 정할 수 있습니다. <br> Interface interface를 사용하
리터럴 타입 특정한 숫자나 문자열 같이 변수의 값을 타입으로 하는 타입입니다. 각 리터럴 타입들은 string이나 number 같은 더 큰 타입에 포함됩니다. 타입 별칭 복잡한 타입에 이름을 붙이고 재사용하고 싶을 때 사용합니다. Enum과 타입 별칭 아래 두 코드는 거의 같은 역할을 하는 코드입니다. Enum을 사용한
타입스크립트에서 기본적으로 제공하는 제네릭 타입 중에서 알아두면 유용한 것들 JavaScript 기능들 querySelector() 함수 기본적으로 어떤 DOM 노드가 리턴될지 모르기 때문에 HTMLElement라는 일반적인 타입으로 정의됩니다. 하지만 타입을 확신할 수 있는 경우에는 아래 코드처럼 직접 제네릭 타입을 정
자주 사용되는 옵션 프로젝트를 만들 때 tsc --init 명령어로 tsconfig.json 파일을 생성했습니다. 아래와 같은 파일이 생성되었는데요. 이번 레슨에서는 이 파일에서 사용할 수 있는 옵션들에 대해서 좀 더 자세히 살펴보겠습니다. <br> 꼭 알아야 할 컴파일러 옵션들 compilerOptions에서 사용할 수
[!quote] brench 단계별 git 관리 프로세스 dev >> staging >> main <sup>( Production ) </sup> <br> 초기 설정 새 기능 개발 시작 Dev 환경으로 배포 Staging 환경으로 승격 Production 배포 정리 작업 긴급 수정 (Hotfix) 여러 기능을 동시에 개발
깃은 누가 만들었을까? 바로 리누스 토발즈(Linus Torvalds)라는 사람이 만들었다. 리누스 토발즈는 리눅스(Linux)라고 하는 운영 체제를 만든 사람. 리누스 토발즈는 리눅스를 만든 이후에 BitKeeper라고 하는 툴(Tool)로 리눅스의 각 버전들(ver1, ver2, ver3 ...)을 관리하고 있었다.
git init 현재 디렉토리를 Git이 관리하는 프로젝트 디렉토리(=working directory)로 설정하고 그 안에 레포지토리(.git 디렉토리) 생성 git config user.name 'userid' 현재 사용자의 아이디를 'userid'으로 설정(커밋할 때 필요한 정보) git config user.emai
유닉스의 시작과 변형 유닉스는 1970년대 초반, 미국 벨 연구소 직원 켄 톰슨과 데니스 리치의 주도로 개발되었습니다. 개발자들이 소프트웨어를 개발하고 실행할 수 있는, 편리한 플랫폼을 제공하기 위해 개발됐는데요. 사람이 이해하기 쉬운 고급 프로그래밍 언어, C로 대부분 작성되었기 때문에, 수정해서 다른 컴퓨터에 적용하기
루트 디렉토리(/) 아래에는 수많은 디렉토리들이 있는데요. 그중에서 알아두면 좋은 디렉토리 몇 개를 살펴볼 겁니다. 노트를 읽어보시면서 각 디렉토리 안에 어떤 것들이 있는지 살펴보셔도 재미있을 겁니다. ls [-al] [PATH] /bin bin은 'binaries'의 약자인데요. binary는 간단히 말해서 컴퓨터가 실
vim 실행하기 vim 커맨드를 사용하면 됩니다. vim 파일 경로를 아규먼트로 주면 해당하는 파일을 열거나, 존재하지 않으면 새로 만들어 줍니다. vim path/to/file vim의 4 가지 사용 모드 vim에는 4가지 사용 모드가 있습니다: 일반 모드 입력 모드 비주얼 모드 명령 모드 각 모드에서는 아래와 같은 작
pwd (print working directory) 사용법: pwd 예: pwd 현재 디렉토리 (working directory)의 경로를 출력합니다. cd (change directory) 사용법: cd [PATH] 예: cd dir1 PATH 경로에 해당하는 디렉토리로 이동합니다. 아무 아규먼트 없이 cd를 하면 사
다른 환경의 외부 프로그램 설치 CLI 환경에서도 커맨드를 쓰면 외부에 있는 프로그램을 설치하는 게 가능합니다. 그런데 외부 프로그램 설치의 경우는 이때까지 배웠던 내용과는 달리 환경에 따라 사용해야 하는 커맨드가 달라집니다. 우분투에서는 apt라는 커맨드 맥 OS에서는 homebrew라는 커맨드 를 각각 써야 하는데요.
파이썬 객체지향 프로그래밍의 추상화(Abstraction) 추상화(Abstraction)란? 추상화<sup>Abstraction</sup>는 복잡한 시스템에서 불필요하거나 세부적인 구현 내용을 숨기고, ==외부에서 꼭 필요한 기능(인터페이스)만을 노출==하는 기법입니다. 사용자는 내부 동작 방식을 몰라도 주어진 인터페이스
파이썬 객체지향 프로그래밍의 캡슐화(Encapsulation) 캡슐화(Encapsulation)란? 캡슐화 <sup>Encapsulation</sup> 는 객체지향 프로그래밍의 중요한 4대 기둥 개념 중 하나로, 데이터(속성)와 그 데이터를 조작하는 메서드를 하나의 단위로 묶고, 객체의 내부 상태를 외부로부터 보호하는 메
파이썬 객체지향 프로그래밍 상속<sup>Inheritance</sup> 상속은 객체지향 프로그래밍의 4대기둥 중 하나로, 기존 클래스의 속성과 메서드를 새로운 클래스가 재사용할 수 있게 하는 메커니즘입니다. 상속을 통해 코드 재사용성을 높이고, 계층적인 관계를 만들며, 공통된 특성을 효율적으로 관리할 수 있습니다. 상속의
파이썬 객체지향 프로그래밍의 다형성 <sup>Polymorphism</sup> 다형성<sup>Polymorphism</sup> 은 객체지향 프로그래밍의 4대 기둥 중 하나로, "==여러 형태를 가질 수 있는 능력=="을 의미합니다. 이는 동일한 인터페이스(메서드나 연산자)가 여러 다른 타입의 객체에 대해 다양한 구현을 가
강화학습 강화학습<sup>Reinforcement Learning</sup> 의 설명 쉽지만 추상적인 설명 - "시행착오를 통해 발전해 나가는 과정" 어렵지만 좀 더 정확한 설명 - "순차적 의사결정 문제에서 누적보상을 최대화하기 위해 시행착오를 통해 행동을 교정하는 학습과정" <br> 순차적 의사결정 문제 강화학습이 풀
2.1 마르코프 프로세스 강화학습은 =="순차적 의사결정 문제"를 푸는 "방법론".== <br>"순차적 의사결정<sup>Sequential decision making</sup> 문제"는 결국 MDP<sup>Markov Decision Process</sup> 라는 개념을 통해서 정확하게 표현할 수 있다. <div sty
3.0 벨만 방정식 주어진 정책 $\pi$ 의 상태별 밸류 $v\pi(s)$를 구하는 것이 생각보다 어려운 일이다. 밸류 를 계산하는 방법은 "벨만 방정식을 이용해서 구한다." 나 다름이 없을 정도로 강화학습에서 중요한 수식이다. 이후 다이나믹 프로그래밍<sup>dynamic programming</sup>을 이용하여 벨
🦀 Rust 학습 커리큘럼 (40일 완성) Phase 1: Foundation (Day 1-13) - [x] Day 1-2: Setup & Basic Syntax - [x] Day 3-5: Ownership - [x] Day 6-8: References & Borrowing - [x] Day 9-10: Structs &
Day 1-2: Setup & Basic Syntax - 핵심 요약 [ ] Cargo로 새 프로젝트 만들고 실행 가능 [ ] let vs let mut를 언제 쓰는지 안다 [ ] Shadowing이 왜 유용한지 설명 가능 [ ] 함수 정의와 호출 자유롭게 가능 [ ] 타입 변환 (as 키워드) 이해 --- 🔑 핵심 개념
Day 3-5: Ownership - 핵심 요약 [ ] "왜 Rust는 ownership이 필요한가?" 설명 가능 [ ] Move 후 왜 사용할 수 없는지 이해 [ ] 어떤 타입이 Copy인지 판단 가능 [ ] Python의 reference counting과 차이점 설명 가능 [ ] Stack vs Heap 메모리 모델
Day 6-8: References & Borrowing 요약 🎯 핵심 개념 왜 필요한가? Day 3-5에서 발견한 문제: 함수에 값을 넘기면 소유권이 이동 → 원래 변수 사용 불가 해결책: 소유권을 넘기지 않고 빌려주기(Borrowing) --- 📌 두 종류의 참조 Immutable Reference (&T) — 읽
Day 9-10: Structs & Methods 정리 핵심 한줄: Rust는 데이터(struct)와 동작(impl)을 분리하며, 메서드 시그니처만으로 읽기/수정/소비 의도가 드러난다. --- 🔑 핵심 개념 Python class vs Rust struct + impl . vs :: — 인스턴스 vs 타입 문법 왼쪽에
Day 11-13: Enums & Pattern Matching 정리 핵심 한줄: Rust enum은 "여러 가능성 중 하나"를 타입으로 표현하고, match는 모든 경우를 빠짐없이 처리하도록 강제한다. --- 🔑 핵심 개념 Enum — 여러 가능성을 하나의 타입으로 Python에서는 상태를 문자열이나 상수로 표현하지만
Day 14-15: Collections 정리 핵심 한줄: Rust의 컬렉션은 Python과 비슷하게 동작하지만, 소유권과 빌림 규칙이 결합되어 안전한 데이터 관리를 강제한다. --- 🔑 핵심 개념 Vec<T> — Python의 list 소유권과의 관계: vec.push(val) → val의 소유권이 Vec으로 이동 (
Day 16-17: Slices 심화, String 내부, 타입 변환 참고: The Rust Book Chapter 4.3 (Slices), Chapter 8.2 (Strings) --- 메모리 구조: String vs &str String (소유자, 힙 할당) ptr: 힙 데이터의 메모리 주소 (pointer) len:
Day 18-20: Iterator & Closure 참고: The Rust Book Chapter 13 (Iterators and Closures) --- 이터레이터 3종류 — 소유권 기반 선택 기준 상황 메서드 결과 타입 원본 ------ -------- ---------- ------ 읽기만 iter() &T 유지
건축 Architecture 빌드 ------ ----------- --------------------- ==WA== ==벽== ==Wall== ==DR== ==문== ==Door== ==WN== ==창== ==Window== ==CM== ==구성요소 배치== ==Place a Component== ==CL== ==기둥
"C#" C#은 범용, 유형 안전, 객체 지향 프로그래밍 언어입니다. Microsoft에서 .NET initiative의 일환으로 2000년경에 개발했습니다. <br> .NET Platform .NET은 다양한 유형의 애플리케이션을 구축할 수 있는 무료 크로스 플랫폼 오픈 소스 개발자 플랫폼입니다. .NET을 사용하면 여
<br> .ToUpper() in "C#" C#에서 .ToUpper()는 문자열의 모든 문자를 대문자로 변환하는 문자열 메서드입니다. 문자에 대문자로 대응하는 문자가 없는 경우 변경되지 않은 상태로 유지됩니다. 예를 들어 특수 기호는 변경되지 않습니다. <br> IndexOf() in "C#" C#에서 IndexOf()
<br> 조건문 If Statements C#에서 if 문은 괄호 안에 제공된 부울 표현식이 참true인지 거짓false인지에 따라 코드 블록을 실행합니다. 표현식이 참true이면 중괄호 {} 안의 코드 블록이 실행됩니다. 그렇지 않으면 코드 블록은 건너뛰어집니다. <br> Break Keyword C#에서 break 키
<br> Optional Parameters C#에서는 메서드에 선택적 매개변수를 지정할 수 있습니다. 매개변수가 선택적이라면 해당 매개변수의 선언에 기본 인수가 지정됩니다. 선택적 매개변수를 갖는 메서드는 해당 매개변수에 대한 인수를 전달하거나 전달하지 않고 호출할 수 있습니다. 선택적 매개변수에 대한 인수를 전달하지
<br> C# Arrays C#에서 배열은 동일한 유형의 값 또는 객체를 가진 고정 길이의 순서가 있는 컬렉션을 나타내는 구조입니다. 배열은 대량의 데이터를 조직화하고 조작하는 데 편리합니다. 예를 들어, 100 개의 정수 변수를 만드는 대신, 모든 정수를 저장하는 배열 하나를 만들 수 있습니다! <br> Declarin
<br> C# Classes C#에서 클래스는 사용자 정의 형식을 생성하는 데 사용됩니다. 클래스는 사용자 정의 형식에 포함되는 정보와 메서드의 종류를 정의합니다. <br> C# Constructor C#에서 클래스의 인스턴스가 생성될 때마다 해당 클래스의 생성자가 호출됩니다. 메서드와 마찬가지로 생성자를 오버로드할 수
<br> C# Inheritance In C#, inheritance is the process by which one class inherits the members of another class. The class that inherits is called a subclass or derived class. The o
<br> C# Reference Types C# Object Reference C# Object Reference Functionality C# Polymorphism C# Upcasting C# Downcasting C# Null Reference C# Value Types C# Comparison Type C# Ove
<br> Lists in "C#" Generic Collections Limitless Lists Count Property Contains() LINQ Using LINQ var Method & Query Syntax Where From Select LINQ & foreach Count() Object Initializ
딥러닝의 핵심 메커니즘 중 하나인 순전파와 역전파 과정을 수식적으로 깊이 있게 다뤄보자. 먼저, 신경망의 역전파를 이해하기 위해 필요한 두 가지 중요한 미적분학 관련 개념인 편미분과 합성 함수의 미분에 대해 간단히 알아보자. 우선 편미분은 다변수 함수에서 한 변수의 변화가 함수에 미치는 영향을 측정하기 위해 사용된다. 다
벡터는 무엇인가? 벡터는 크기와 방향을 모두 가진 양을 설명할 수 있습니다. 실제로 벡터는 이러한 속성으로 정의되며, 운동의 물리학과 같은 중요한 문제를 해결하는 데 사용됩니다. 파동은 추상적인 벡터입니다 표기법은 케트(ket)라고 불립니다. 이는 객체가 벡터임을 나타내기 위해 “object”“object” 을 ∣“obj
Intro 1989년 12월, 네덜란드의 컴퓨터과학자 귀도 반 로섬 Guido Van Rossum은 여러 프로그래밍 언어들의 한계로 인해 괴로워 하다 크리스마스 프로젝트로 새로운 언어를 직접 만들어 탄생하게 되었다. 읽기 쉬워야 한다. 중괄호로 묶기보다는 깔끔하게 '인덴트'로 처리한 공백으로 둘러쌌다. 사용자가 원하는 모
A. 관리자 Rhino8 상업용 라이센스 보유. B. 이메일 기반 서버관리식 프로그램 사용 클라우드 주 (Cloud Zoo) McNeel의 라이선스 서버(클라우드 주)에 라이선스 추가하여 할당합니다. 라이노 계정(Rhino Accounts 이메일)으로 관리합니다. 인터넷 가능한 어떤 컴퓨터에서나 로그인하여 라이선스 사용가