반응형
✅ 1. FutureFuture는 "미래에 완료될 값"을 나타내는 객체로 비동기적으로 수행하며, 그 결과(success of fail)을 담습니다.import scala.concurrent.Futureimport scala.util.{Success, Failure}import scala.concurrent.ExecutionContext.Implicits.globalobject FutureExample extends App { val f: Future[Int] = Future { // 시간이 걸리는 작업 (ex. 네트워크 요청) Thread.sleep(1000) 42 } // 결과 처리 f.onComplete { case Success(value) => ..
✅ 1. Unity를 사용한 2D 프로젝트 만들기이번 시간에는 아주 간단하게 Unity 2D 프로젝트를 만들어보겠습니다. Kenny라는 사이트에서 무료 Assets를 참고해서 만들어볼건데요..먼저 저는 하나 선택을 했기때문에 제가 선택한 Assets를 선택하셔도되고 아니면 참고해서 아무거나 실습해보셔도 좋습니다. Tiny Town · KenneyDownload this package (130 assets) for free, CC0 licensed!kenney.nl 사이트로 가서 Download버튼을 클릭해서 다운로드해줍니다. 창 하나가 떠있는데 바로 Continue without doneting..버튼을 클릭해줍니다. 설치가 완료되었으면 이전 시간에 설치한 Unity Web을 실행시켜줍니다. 실행 시..
✅ 1. 클래스 기본 문법자바스크립트에서 class는 객체를 생성하기 위한 템플릿으로, ES6(2015)부터 도입된 문법으로 자바나 C#과 조금 비슷한 구조입니다. 클래스 선언 시 class를 사용합니다.class Person { // 생성자 (객체 생성 시 자동 실행) constructor(name, age) { this.name = name; this.age = age; } // 메서드 (Prototype에 저장) sayHell() { console.log(`Hello, my name is ${this.name}, ${this.age} years old`); }}// 객체 생성const p1 = new Person("James", 25);p1.sayHell(); // Hel..
✅ 1. 라우터(Router)란?Express(익스프레스)에서 라우터를 분리하는 이유는 크게 유지보수와 확장성을 위해 라우터를 분리합니다. 즉 프로젝트가 커질수록 모든 라우트를 app.js에 넣으면 혼란스러워지기에, 기능별로 파일을 분리하는 것이 좋습니다. 라우터의 개념은 다음과 같습니다.URL 경로와 HTTP 메서드를 정의하는 모듈요청이 들어오면 어떠한 컨트롤러(로직)을 실행할지 결정함Express에서는 express.Router()를 사용해 라우터를 만듬const express = require("express");const router = express.Router();const app = express();router.get("/hello", (req, res) => res.send("Hello"..
✅ 1. where 제약조건제네릭은 기본적으로 어떠한 타입이든 동작하나, 때때로 특정 기능을 보장해야할 때가 있습니다. 예를 들어 T가 반드시 선언한 값을 상속하고 기본 생성자가 있어야만 하고 싶다면 where 제약조건을 사용합니다.public class Human{ public virtual void Speak() => Console.WriteLine("나는 인간이야");}public class Hungry : Human{ public override void Speak() => Console.WriteLine("나 배고파");}public class Sleep : Human{ public override void Speak() => Console.WriteLine("나 졸려");}//..
🐪 1. 서브루틴이란?서브루틴(subroutine)은 다른 언어에서 말하는 함수(function) 혹은 메서드(method)와 동일한 개념으로, 특정 작업을 수행하는 코드 블록을 의미합니다. 반복적인 코드를 줄이고, 프로그램을 구조화하며, 재사용성을 높이는데 가장 중요한 도구입니다. 서브루틴을 사용하기 위해서는 sub 키워드를 사용해서 정의할 수 있습니다.sub 서브루틴 이름 { # 수행할 코드}예를 들어 서 간단한 인사말을 출력하는 서브루틴을 만들 수 있습니다.sub hello { print "안녕하세요!"}# 서브 루틴 호출 greet();위 코드를 실행하면 안녕하세요! 가 출력됩니다. 중요한 점은 서브루틴 이름 뒤에 ()를 붙여서 호출한다는 점이며, Perl에서는 ()를 생략하고 호출할 ..
▶️ 1. 서브 쿼리(Subquery)란?서브쿼리(Subquery)는 SQL문 안에 포함된 또 다른 SQL문을 의미합니다. 서브쿼리를 사용하는 위치는 다음과 같습니다.사용 위치:SELECT 절: 스칼리 서브쿼리, 하나의 값 반환FROM 절: 인라인 뷰처럼 사용WHERE 절: 조건 비교용HAVING 절: 집계 조건 비교INSERT, UPDATE, DELETE 문도 활용 가능즉, 큰 쿼리(메인 쿼리, Outer Query)안에서 작은 쿼리(서브 쿼리, Inner Query)를 실행시켜 값을 가져오는 구조입니다. ▶️ 2. SELECT 절 안에 사용하는 서브쿼리 (스칼라 서브쿼리)SELECT c.universe_id, c.name, c.year, (SELECT AVG(year) FROM compute..
✅ 1. 상속(Inheritance)란 Sass에서 상속은 공통 스타일을 여러 서택자에 재사용하고 싶을 때 유용하며, CSS에서 클래스 반복을 줄이고 유지보수를 쉽게 해주는 기능입니다. Sass에서 @extend를 사용해 다른 셀렉터의 스타일을 상속할 수 있으며 즉, 하나의 클래스를 기준 스타일로 만들고, 다른 클래스가 이를 그대로 가져오는 구조입니다.// style.scss.button { padding: 10px 20px; background-color: cornflowerblue; color: #fff; border-radius: 5px;}.primary-button { @extend .button; background-color: green;}.secondary-button { @ex..
✅ 1. 자료 구조(데이터 구조)란자료 구조란 데이터를 효율적으로 저장해 필요한 데이터를 더욱 빠르게 접근할 수 있게 만들고 수정과 삭제가 가능할 수 있도록 구성한 데이터 조직화 방법입니다. 데이터 분석에서 수많은 데이터를 처리하고, 통계 계산, 검색 필터링을 수행하기 때문에 자료 구조에 대한 이해가 필수적입니다. 자료 구조를 올바르게 정의하면 코드의 효율이 달라집니다.✅ 2. 배열(Array)배열(Array)은 같은 타입의 데이터를 연속된 메모리 공간에 저장하는 구조입니다. 인덱스로 바로 접근이 가능하며 그만큼 조회 속도가 빠르고(O(1)) 구현이 간단합니다. // Python 에시arr = [10, 20, 30, 40, 50];print(arr[2]) # 30 출력arr.append(60) # 배열..
✅ 1. 변수와 불변성F#은 함수형 프로그래밍(FP)언어로, 데이터 불변성을 기본 철학으로 하고 있습니다. 다른 언어에서는 변수를 자유롭게 바꿀 수 있으나, F#에서는 기본적으로 변수를 바꿀 수 없게 설계되어 있습니다. 대신 필요할 때만 명시적으로 변경할 수는 있습니다. 이러한 특성 덕분에 코드 안정성이 높아지고 함수형 사고방식을 자연스럽게 체득할 수 있습니다.✅ 2. F#의 실행 환경기본적으로 F# 코드를 실행하는 방법은 크게 두 가지가 있습니다.프로젝트 단위 실행:dotnet new console -lang 'F#'으로 프로젝트를 만든 후, Program.fs에서 코드를 작성하고 dotnet run으로 실행하는 방법이 있습니다. 이 경우 프로젝트 안에 다른 .fs 파일들도 포함되나 항상 시작점(ent..