-
Computer TOP NEW
컴퓨터의 요소 CPU DMA (Direct Memory Access) 컨트롤러 메모리 타미머 디바이스 컨트롤러 CPU (Central Process Unit) 산술논리연산장치, 제어장치, 레지스터로 구성 된 컴퓨터 장치 인터럽트(Interrupt)에 의해 단순히 메모리에 존재하는 명령어를 해석하여 실행 운영체제의 커널이 프로그램을 메모리에 올려 프로세스로 만들면 CPU가 이를 실행 처리 산술논리연산장치 ALU (Arithmetic Logic Unit) 덧셈 뺄셈 같은 두 숫자의 산술연산과, 배타적 논리합, 논리곱 같은 논리 연산을 계산하는 디지털 회로 ... Read More
-
미니맵 구현 TOP NEW
RPG 게임의 경우 원활한 게임 진행을 위해 미니맵을 만드는 경우가 많습니다. 여기서는 해당 미니맵을 구성하는 방법을 소개 합니다. Render Texture Unity의 렌더 텍스처는 런타임에 생성되고 업데이트되는 특별한 유형의 텍스처입니다. 기본적으로 카메라의 출력이나 렌더링 프로세스를 화면에 직접 렌더링하는 대신 텍스처로 렌더링하는 데 사용됩니다. 이를 통해 게임 개발 시 다양한 고급 그래픽 기술과 효과를 사용할 수 있습니다. 주요 개념 렌더링 대상 일반적으로 Unity의 카메라는 화면에 직접 렌더링됩니다. 그러나 대신 렌더 텍스처로 렌더링하도록 카메라를 설정할 수 있습니... Read More
-
팀 프로젝트 기획 TOP NEW
-
운영체제와 컴퓨터 TOP NEW
운영체제의 역할과 구조 운영체제의 역할 CPU 스케줄링과 프로세스 관리 CPU 소유권을 어떤 프로세스에 할당할 것인지 프로세스의 생성과 삭제 자원 할당 및 반환 관리 메모리관리 한정된 메모리를 어떤 프로세스에 얼만큼 할당하는지 관리 디스크 파일 관리 디스크 파일을 어떠한 방법으로 보관할지 관리 Input / Output 디바이스 관리 마우스, 키보드와 컴퓨터 간의 데이터를 주고받는 것을 관리 운영체제의 구조 GUI : 사용자가 전자장치와 상화 작용할 수 있도록 하는 UI(User Interface)의 한 형태 CUI : 그래픽이 아닌 명령어로 처리하는... Read More
-
디자인패턴 (MVC, MVP, MVVM) TOP NEW
MVC Pattern 모델(Model), 뷰(View), 컨트롤러(Controller)로 이루어진 패턴 Application 구성 요소를 세 가지 역할로 구분 각각의 요소에만 집중래서 개발할 수 있음 재사용성 및 확장성이 용이 모델 데이터 베이스, CharacterData, EnemyData 등 using System; [Serializable] public class Model { public int score; public void AddScore(int points) { score += points; } } 뷰 UI 등 유저의 화면에... Read More
-
디자인패턴 (옵저버, 이터레이터) TOP NEW
옵저버 패턴 Observer Pattern 주체가 어떤 객체의 상태 변화를 관찰 상태 변화가 있을 때마다 메서드 등을 통해 옵저버 목로에 있는 옵저버(관찰자)에게 변화를 알려주는 디자인 패턴 주체란, 객체의 상태 변화를 보고 있는 관찰자이며, 옵저버들이란 객체의 상태 변화에 따라 전달되는 메서드 등을 기반으로 추가 변화 사항이 생기는 객체들을 의미 옵저버 패턴은 주로 이벤트 기반 시스템에 사용 MVC(Model-View-Controller) 패턴에 사용 옵저버 패턴 종류 객체와 주체가 분리되어 있는 옵저버 패턴 객체와 주체가 합쳐진 옵저버 패턴 옵저버 패턴의 사용 사... Read More
-
디자인패턴 (싱글턴, 팩토리, 전략) TOP NEW
디자인 패턴 프로그램을 설계할 때 발생했던 문제점들을 객체 간의 상호 관계등을 이용하여 해결할 수 있도록 하나의 규약형태로 만들어 놓은 것 싱글톤 패턴 (Singleton Pattern) 하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴 하나의 클래스를 기반으로 단 하나의 인스턴스를 만들어 이를 기반으로 로직을 만드는 데 쓰이며, 보통 데이터베이스 연결 모듈에 많이 사용 Singleton 인스턴스 생성 프로퍼티를 이용한 싱글턴 인스턴스 생성 private static GameManager _instence; private static bool _initialized; pu... Read More
-
게임 빌드 트러블 TOP NEW
-
게임 Window Size 비율을 유지하며 창 크기 조절하기 TOP NEW
사이즈를 유지하며 창 크기가 유지 될 수 있도록 하기 빌드 세팅에서 Resolution and Presentation 중 Fullscreen Mode를 Windowed로 맞추면 창 모드로만 게임을 실행 할 수 있음 창모드 전체모드 문제점 창모드에서 사이즈를 줄이려하면 사이즈 조절에 잠겨 있는 문제가 발생 Resizeable Window 를 체크하면 사이즈 조절은 가능해짐 너무 자유로워서 개발자가 의도한 사이즈만 제공할 수 없는 문제 빌드 옵션이 별도로 사이즈를 고정해서 조절할 수 있는 옵션이 없어 스크립트로 작성하여 엔진에서 사이즈... Read More
-
피드백에 따른 UI Manager 리팩토링 TOP NEW
UI Manager 관련 피드백 SetBinder 클래스에서 Binding 메서드를 제너릭 메서드로 만들고, UI 컴포넌트 타입을 직접 전달하여 해당 타입에 대한 바인딩만 수행하도록 변경하면 좋을듯합니다. 그럼 코드의 재사용성이 높아지겠죠? UI_Base 클래스에서 GetUIComponents 메서드를 각 UI 컴포넌트 타입에 따라 별도의 메서드를 만들지 않고, 단일 제너릭 메서드로 통합하면 코드 중복이 줄어들꺼에요. SetBinder 클래스에서 FindComponentRecursive 메서드가 재귀적인 방식을 따르는데, 이건... Read More
-
Object Pool을 이용한 장애물 컨트롤 TOP NEW
오브젝트풀링 유니티 어셈블에서 제공하는 풀링 시스템을 이용한 코드 리팩토링 기존 풀필 시스템은 풀링의 갯수를 정해두고 미리 오브젝트를 풀링 해둔 상태로, 리스트에 담아서 하나하나 꺼내 쓰는 방법이었다면, 새로운 풀링은 동적으로 필요에 따라 생성하고 추가적으로 더 필요하다면 런타임에서 풀을 생성하여 계속해서 재활용하는 방법입니다. 기존 풀링 시스템 using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement; public class ObstaclePool : MonoBehaviour ... Read More
-
Ragdoll 과 Joint TOP NEW
CharacterJoint Unity의 ‘CharacterJoint’는 래그돌 물리학과 생물학적 생물체에서 발견되는 것과 유사한 복잡한 관절 동작을 시뮬레이션하는 데 자주 사용되는 특수한 유형의 관절입니다. 이는 본질적으로 ConfigurableJoint의 확장 버전이며 일반적인 인간형 관절에 대해 더 쉽게 설정할 수 있도록 설계되었습니다. 속성에 대한 자세한 설명은 다음과 같습니다. Connected Body 조인트가 연결될 RigidBody 입니다. 만약 아무것도 연결하지 않는다면 Worold Position에 연결이 됩니다. Anchor ( Vector3 ) ... Read More
-
Service Locator 개선 TOP NEW
기존 ServiceLocator의 경우 서비스를 등록하고 사용해야하는 방법으로 사용하고 있었는데 이번 프로젝트를 진행하면서, GatOrAddComponent 처럼 동적으로 사용할 수 있을 것 같아 코드를 변경한 리팩토링을 진행 합니다. 기존 ServiceLocator using System; using System.Collections.Generic; public static class ServiceLocator { private static readonly Dictionary<Type, object> Services = new(); public static Reg... Read More
-
Allocation Warning TOP NEW
새 프로젝트 생성시 발생한 문제 프로젝트 생성 시 발생한 문제로 해당 로그들은 다음과 같습니다. Layout File Loading Issue “The layout … could not be fully loaded”라는 오류는 Unity가 사용자 정의 레이아웃 파일을 로딩하는데 문제가 있음을 나타냅니다. 이 문제는 레이아웃 파일이 현재 Unity 프로젝트에서 사용할 수 없거나 존재하지 않는 에디터 윈도우나 다른 컴포넌트를 참조할 때 발생할 수 있습니다. Memory Allocation Warnings Allocation of 37 bytes…“와 같은 메모리 할당 메시지와 해... Read More
-
LFS를 이용한 100MB 이상의 파일 깃허브 커밋 TOP NEW
100MB 가 넘어가는 파일은 깃허브에 커밋시에 해당 경고를 볼 수 있습니다. 이때는 LFS를 이용하여 효율적으로 사용이 가능해집니다 대부분의 경우 ignore 처리가 제대로 되지 않았을 경우 발생합니다. 발생 안하는 것이 좋지만 발생한다면 처리해야 합니다. LFS 설치 git lfs install 트래킹 파일 설정 Git 프로젝트안에서 대용량 파일을 확인하여 LFS 트래킹 설정을 해줍니다. Git LFS(Large File Storage)는 대용량 파일을 별도의 서버에 저장하여 처리를 개선하도록 설계된 Git용 확장입니다. 이는 오디오 샘플, 비디오, 데이터 세트 ... Read More
-
팀 프로젝트 정리 TOP NEW
-
Unable to merge unrelated histories in this repository TOP NEW
Unable to merge unrelated histories in this repository “이 저장소에서 관련되지 않은 기록을 병합할 수 없습니다.” 중간에 히스토리가 꼬이거나 잘못된 병합으로 인해서 발생 이러한 상황은 자체 초기 커밋(예: README 또는 라이선스 파일)을 사용하여 GitHub와 같은 플랫폼에서 새 저장소가 초기화되고 자체 기록이 있는 기존 로컬 저장소가 이미 있는 경우 일반적입니다. 이 문제를 해결하려면 git pull 또는 git merge 명령과 함께 --allow-un관련-histories 플래그를 사용할 수 있습니다. 이 플래그는 두 기록이... Read More
-
Loading Scene 생성 TOP NEW
Loading Scene 각 씬을 넘어갈 때 마다, 리소스의 로드를 효과적으로 하기 위해 Loading Scene 에서 리소스를 로드하고, 비동기적으로 다음 씬을 로드 하는 방법으로 제작 Loading Scene.cs using System.Collections; using Scripts.UI.Scene_UI; using UnityEngine; using UnityEngine.SceneManagement; using Object = UnityEngine.Object; public class LoadingScene : BaseScene { private L... Read More
-
Project Trouble Shooting TOP NEW
현재 Scene이 Null이 발생하는 문제 CurrentScene에 IntroScene을 할당하고 CurrentScene 이 IntroScene 인것을 확인 protected override bool Initialized() { if (!base.Initialized()) return false; // TODO : 인트로 씬 실행시 Context 작성 CurrentScene = Label.IntroScene; LoadResource(); return true; } private void LoadResource() { ... Read More
-
IPointerHandler 이벤트 TOP NEW
IPointerHandler EventSystem namespace의 일부 주로 마우스나 터치 스크린과 같은 포인팅 장치의 입력을 처리하는데 사용 여러 유형의 포인터 이벤트가 있으며, 각각은 다양한 형태의 사용자 상호작용에 응답하도록 설계 됨 IPointerHandler 이벤트 유형 IPointerEnterHandler : 포인터가 UI 요소의 영역에 들어갈 때 트리거 IPointerExitHandler : 포인터가 UI 요소의 영역을 벗어날 때 트리거 IPointerDownHandler : UI 요소위에 포인터를 눌렀을 때 트리거 IPointerUpHandler : UI 요... Read More
-
Scene UI Setting TOP NEW
UI Canvas Setting UI 오브젝트를 인스턴화 할때 아용하는 방법입니다. 협업시 충돌을 줄이기 위해서 모든 인스턴스는 프리팹화 시키며, 이를 부를때 UI 속성을 가지고 있는 오브젝트는 꼭 Canvas가 있어야 하기 때문에 프리팹에 추가 하거나 미리 생성된 Canvas의 하위 오브젝트로 넣어야 정상적으로 사용이 가능합니다. 씬 오브젝트 인스턴스화 public void SetSceneUI<T>() where T : UI_Base { string sceneTypeName = typeof(T).Name; T sceneUI = SetUI<T>(sc... Read More
-
팀 프로젝트 기획 TOP NEW
-
Strategy Pattern을 이용한 데이터 로드 리팩토링 TOP NEW
Strategy Pattern (전략패턴) 다양한 클래스 내에 알고리즘을 캡슐화하여 객체가 런타임에 동작할 수 있도록 하는 객체지향프로그래밍의 동작 디자인 패턴입니다. 이 패턴은 Context에서 서로 다른 알고리즘이나 Procedure간에 동적으로 전환해야하는 상황에 특히 유용합니다. 전략 인터페이스 (Strategy Pattern) 알고리즘 계열에 대한 공통 Interface를 만드는 것이 포함되는 단계 자체 클래스에 캡슐화 된 각 알고리즘은 이 인터페이스를 구현 함 이 인터페이스는 알고리즘을 실행가기 위해 호출되는 메서드를 정의 구체적인 전략 (Concrete St... Read More
-
어드레서블 멀티 스프라이트 TOP NEW
문제 발생 Addressables 를 사용하다 얘기치 못한 문제에 마딱드림.. 기존의 사용방법으로는 멀티모드의 Sprite 형태의 리소스를 가지고 올 수 없는 문제가 있습니다. 지금 코드의 Addressable은 PrimeKey 값을 Armor01[Armor01] 이렇게 가져오고 있는데 멀티에서는 보는 것과 같이 Body, Left, Right 등 의도하지 않은 문자가 들어서 데이터를 로드할 수 없는 문제가 발생합니다. 별도로 하위 녀석에게 접근하여 바꿀 수 없는 문제가 있어 해결에 난항을 겪고 있는 와중 2016년 자료를 보게 되었는데 이 당시에는 문제가 많았던 기능이었지만 지금은 가능하지 않을까해... Read More
-
Addressables Asset 기초 TOP NEW
Addressables Addressables 에셋은 리소스를 효율적으로 관리하고자 Unity에서 기본적으로 제공하는 에셋입니다. Resources 폴더의 경우 사용 여부와는 상관없이 모두 Load를 하는데 적은양의 리소스의 경우 문제가 없지만 프로젝트의 사이즈가 커져 관리해야 하는 리소스가 많이 생기게 되면, 게임 로드시에 렉이나 문제를 유발 할 수 있습니다. Addressables 의 경우 이런 문제를 해결하고 Label을 이용하여 원하는 시점에 리소스들을 로드할 수 있습니다. 예를들어, Lobby Scene 리소스, Game Scene 리소스 등을 구분하여 로드가 가능해집니다. 설치 ... Read More
-
알고리즘 결괏값 확인 자동화 TOP NEW
코드실행 자동화 기존에 알고리즘을 실행하기 위해서는 Program.cs의 Main 함수를 실행하는 방식 해당 Solution을 실행 하기 위해서는 Main 안에서 Class.solution을 실행 해야하는 귀찮음 별도의 Code 수정 없이 실행 버튼을 누르면 자동으로 실행되는 로직을 구상 Program.cs using System.Reflection; public abstract class KataBase { public abstract void Example(); } public static class Program { public static void Main() ... Read More
-
Event 상속 트러블 TOP NEW
이벤트 호출 문제 문제점 이벤트 Invoke 당시 Vector2 값이 있는데 이벤트를 수신하는 코드에서 Vector2 값이 zero가 되는 문제 확인사항 1 : Event Invoke 확인 이벤트에서 Invoke 확인 플레이어 및 Goblin 모두 이벤트 메서드를 상속 받기 때문에 Tag를 활용한 이벤트 주체 확인 protected void CallMoveEvent(Vector2 direction) { OnMoveEvent?.Invoke(direction); if (gameObject.CompareTag("Goblin")) { ... Read More
-
Clean 코드를 사용하자 TOP NEW
Clean Code 프로그래밍에 있어서 이제는 그냥 구현에 만족하는 것이 아니라, 패턴, 변수, 컨벤션등을 지키며 협업을 위한 읽기 좋은 코드 깔끔한 코드를 만들 때이기 때문에 Clean 코드에 대해서 알아보려고 합니다. 기이한 이름 (Mysterious Name) 명확한 변수명은 매우 중요합니다. 모호한 이른은 코드 자체의 가독성을 낮추고 코드의 이해를 방해함 변수, 함수, 클래스, 모듈명 등 이름만 보아도 무엇을 하는지 또는 무엇을 뜻 하는지 알 수 있는 이름이 좋은 이름입니다. 오히려 코드를 작성 중 해당 부분에 대한 명확한 이름이 떠오르지 않는다면 설계가 잘못 되었을 수 있... Read More
-
Jira를 이용한 스크럼 방식의 Workflow 다루기 TOP NEW
Workflow 이전 프로젝트에서 중간 중간 서로 무엇을 해야하는지 확인이 되지 않아 개발이 지연되는 문제가 발생한 경험으로 이번 프로젝트에서는 팀의 개발 Workflow 를 시각화하여 이러한 문제가 발생되지 않도록 하기 위해 JIRA를 이용한 협업 을 준비하게 되었습니다. Waterfall Agile 민첩한, 재빠른, 좋은 것을 빠르고 낭비없게 만드는 것 즉, 변화 요구사항에 맞는 대응 개발 방식 Scrum, Kanvan, XP, TDD, BDD 등이 Agile 방법의 개발 방식 중 하나 Kanban Just In Time 적시개발 방법론 Kanban Board를 통해 W... Read More
-
프로젝트 발표 TOP NEW
프로젝트 완료 후 코드 리뷰 게임 기획 기획의도 유저의 입장에서 생각하여 유저가 이 게임을 왜 플레이 해야하는거지? 에서 시작 컨텐츠에 대한 확정서 및 플레이 경험을 생각하여 탄막 회피 게임인 닷지게임을 제작 결정 시장조사 시장조사 결과 컨텐츠 자체는 크게 다를 것이 없지만, 케릭터성으로 컨셉을 잡은 게임이 많다고 판단하였으며, 사용할 플레이어나 에셋들도 Cartoon 타입으로 사용하기로 결정 게임 컨셉 베이직 스탠다드 클래스의 유저가 챌린지 클래스를 가기 위해서는 우리를 넘어서라 라는 컨셉의 탄막 슈팅 게임 개발 협업 Git Workflow 버... Read More
-
웨이포인트를 이용한 적 움직임 구현 TOP NEW
WayPoint를 이용한 적 움직임 패턴 구현 WayPoint 웨이포인트는 Vector[] 값을 지정하고 오브젝트가 해당 위치를 배열 순으로 이동하여 움직임 패턴을 만드는 방법입니다. 미리 좌표값을 넣어둘수도 있으며, 메서드 내부에서 좌표를 만드는 방법도 있습니다. 웨이포인트 생성기 먼저 내부에서 웨이포인트좌표를 생성하는 로직입니다. public static Vector2[] CalculateWaypoints(Enemy enemy, int wayPointCount) { int direction = Random.Range(0, 2) == 0 ? -1... Read More
-
Coroutine NullReference Exception TOP NEW
StartCoroutine NullReference 에러 문제 발생 적의 이동 패턴 구현 중 MoveToward 방식의 움직임에서 Coroutine에 문제가 발생 처음에는 enemy, wayPoint가 문제가 있는지 확인 확인 방법은 Debug.Log() 및 IDE의 Debug를 활용 모든 데이터에는 문제가 없는 것으로 확인 됨 IDE Debug 내용 해당 Breaking Point를 확인해도 정상적으로 데이터가 들어와 있는 것을 확인 해결방법 Unity Manual : [NullReferenceException on StartCoroutine()]((h... Read More
-
Csv Convert to Json Generic TOP NEW
Convert Refactoring CSV Data Parser 기능 중 서비스의 확장성 및 일반화를 위해 Generic <T>를 사용하여 범용적으로 사용 가능하도록 리팩토링을 수정합니다. Before #if UNITY_EDITOR [MenuItem("Tools/ParseCSV")] public static void ParseCsv() { ParseEnemyData("Enemy"); } private static void ParseEnemyData(string csvFileName) { EnemyDataLoader ... Read More
-
Csv Parse To Json TOP NEW
Data Parsing 자동화 Editor Customize Unity에서는 EdirotWindow를 상속받으면 Unity Editor에 접근할 수 있는 스크립트에 대한 작성이 가능해집니다. 만약 상단 Menu에 Tool 탭을 만들고 하위 에 ParseCSV 라는 메뉴를 만들고자 한다면 다음과 같이 가능합니다. public class DataParser : EditorWindow { #if UNITY_EDITOR [MenuItem("Tool/ParseCSV")] public static void ParseCsv() { ParseEnemyData("Enem... Read More
-
DataManager의 역할 TOP NEW
DataManager DataManager는 프로젝트에 사용되는 Resource 를 제외한 모든 데이터를 관리하는 Manger 그룹입니다. 해당 프로젝트에서는 Enemy, Stage, Skill 등 다양한 데이터 정보를 csv파일에 작성 해당 csv 파일을 Json 형태로 변환하여 다른 팀원이 해당 데이터를 사용 가능하도록 변형하는 역할도 겸합니다. 문제는 Data의 타입의 무엇이 추가적으로 생길 지 프로젝트를 진행하면서 알 수 있기 때문에 일반적인 확장 가능한 Script를 작성해야 한다는 것입니다. Interface와 <T> 을 사용하여 일반적으로 사용가능한 스크립트 구성을 해... Read More
-
Git Fork 방식을 이용한 협업 1 TOP NEW
Forking Workflow 프로젝트에 참여하는 모든 팀원들이 각자의 Repository애 Upstream Repository를 복제하여 개개인별 Repository를 가지고 프로젝트 협업을 이어나가는 방식 Collaboration 방식과는 다르게 중앙 Upstream 저장소에 Push 하는 것이 아닌, 자신의 저장소에 푸쉬하고 Upstream에 다시 Push 하는 과정을 한번 더 걸치게 됨 Upstream 관리자는 협원팀원들의 PR을 Merge 할지 하지 않을지 정하게 됩니다. 개념 Upstream : 중앙 원격 저장소 remote Repository : 자신의 원격저장소 local R... Read More
-
Unity 프로젝트 기획 TOP NEW
-
시간 표시 TOP NEW
시간 UI UI 상에 시간을 표기 하는 기능 제작 UI 제작 간단한 Image 및 TMP로 시계 제작 TimeUI 스크립트 작성 public class TimeUI : MonoBehaviour { private TextMeshProUGUI _time; private float _timer = 0f; private const string TimeZone = "Asia/Seoul"; private void Start() { _time = GetComponent<TextMeshProUGUI>(); UpdateTime(); ... Read More
-
Avatar의 이름을 바꾸기 TOP NEW
In Game Avatar Name Changed 인게임 내에서 아바타의 이름을 변경하는 기능을 구현 UI 구현 어?! 버튼 또는 InputField가 안눌려요! Canvas 에서 Image UI를 만드시고 버튼 또는 UI 클릭이 눌리지 않는다면 해당 오브젝트의 부모컴포넌트에 Graphic Raycaster 컴포넌트를 추가 해주시기 바랍니다. UI - Image 의 경우 마우스 클릭 같은 Raycast가 무시되는 경우가 있습니다. 이때 해당 Raycast를 ‘인식’하기 위해 Graphic Raycast를 사용합니다. UI element 가 아닌 오브젝트인 경우 P... Read More
-
Avatar 교체 (feat. EventHandler, Action Event) TOP NEW
InGame Avatar Change 캐릭터 선택 화면이 아닌 인게임 상에서 Avatar를 바꾸는 기능에 대한 구현 UI 구성 Avatar 교체 버튼 Avatar 선택 Panel 해당 케릭터 들은 인스턴화 하여 사용할 예정이므로 별도의 프리팹으로 구성합니다. 문제점 캐릭터의 이름이 Panel 위에 나오는 문제 케릭터의 Name Tag 가 Avatar 선택 패널보다 위에 올라와서 발생하는 문제 선택 패널에 별도의 Canvas 컴포넌트를 추가하여 Override Sorting체크 체크 후에 Sort Order를 Name Tag 보다 위로 설정하면 됩니다. ... Read More
-
NPC 생성 (aka. Service Locator Pattern) TOP NEW
NPC 만들기 NPC 오브젝트 생성 케릭터와 비슷하게 NPC 오브젝트를 원하는 위치에 생성 스크립트 작성 NPC의 경우도 Side Bar에 접속자로 표시 해주어야 하므로 GameManager.Instance.User 이벤트를 사용한다 public class Npc : MonoBehaviour { [SerializeField] private string npcNameText = "NPC\n뚱이에오"; [SerializeField] private TextMeshProUGUI npcName; [SerializeField] private Sprite npcSprite; ... Read More
-
접속 상태자 확인 TOP NEW
-
케릭터 선택 기능 TOP NEW
케릭터의 선택 및 게임상의 케릭터를 재할당하여 상태를 변하게 하는 기능의 구현 UGUI 구성 케릭터 선택 버튼 UI 먼저 케릭터를 선택후 선택 된 케릭터를 랜더링할 오브젝트를 생성합니다. 그리고 나서 해당 오브젝트에 Button 컴포넌트를 추가하여 버튼을 눌렀을 때 케릭터 선택 창이 나올 수 있도록 합니다. 그리고 버튼 컴포넌트 위에 케릭터를 표시할 이미지 컴포넌트를 하나 추가 합니다. 버튼 UI의 Sprite를 선택하고 이미지는 별도로 랜더링할 예정이므로 위치만 설정합니다. 해당 이미지에 Sprite만 너으면 아래 그림처럼 표시가 나오게 됩니다. 케... Read More
-
케릭터 Name UI 만들기 TOP NEW
케릭터 UGUI 제작 TextMesh Pro Assets 제작 대략적인 Range는 해당 블로그 Text Mesh Pro Create 참조 TMP에서 사용하면서 한글 지원이 가능한 Font Asset 만들기 Font Asset Creator를 선택하여 Asset Editor 실행 사전에 프로젝트에 넣어둔 Font를 할당 CharacterSet : Custom Range Character Sequence 는 32-126,44032-55203,12593-12643,8200-9900 Generate Font Atlas 를 서택하여 에셋 생성 시간이 좀 걸리는 것... Read More
-
케릭터 Animation TOP NEW
Animator 적용 – Animation에 사용할 Sprite 클립 준비 준비할 클립은 대기(IDLE)와 이동(MOVE) IDLE MOVE 준비된 Sprite를 Sprite Editor를 이용하여 Slice 해준다 Sprite Mode 는 Multiple 을 선택 후 Sprite Editor를 클릭한다. 왼쪽 상단에 Slice 탭을 선택하면 아래 팝업이 등장 해당 Type과 Pivot 을 설정하고 Slice를 클릭하면 이미지가 분할된다 Apply 버튼을 누르고 빠져나온다 위의 과정을 마치면 하나의 이미지가 Slice 되어 아래처럼 여러개의 Sp... Read More
-
Cinemachine으로 케릭터 Follow 하기 TOP NEW
Cinemachine – 2020 버전 이후 나온 Cinemachine 은 가상의 카메라를 설정하여 사용자가 보여주고 싶은 화면을 자연스럽게 또는 멋지게 연출할 수 있는 기능으로 다양한 영상 연출에 사용되는 에셋입니다. 여기서는 별도의 코딩 없이 가상카메라가 플레이어를 따라다니는 Follow Cam을 만들예정입니다. 1. Asset 설치 Package Manager에서 Unity Registry 카테고리에서 Cinemachine을 설치 2. Virtual Camera 생성 하이어라키상에서 => Cinemachine => Virtual Camera를 생성합니다. 3.... Read More
-
케릭터 이동 및 로테이션 TOP NEW
Unity 프로젝트 시작 오랜만에 Unity를 이용한 프로젝트를 제작 새로운 Input System을 이용한 방법으로 케릭터 이동 및 회전을 구현하는 것이 첫번째 과제 Input System 기본적인 Input System은 다음 링크에 정리 Unity Input System 입력값은 키보드의 W,S,A,D 와 ↑,↓,←,→ 키를 이용하여 입력을 바인딩한다 마우스의 입력값은 마우스의 Position 을 값으로 받아온다 Send Message Move 와 LookForward 의 경우 Event Action 을 이용하여 Call back으로 입력되는 입력 값을 처리하여 ... Read More
-
팀 프로젝트 소개 TOP NEW
프로젝트 PT 팀 프로젝트는 중점을 게임 개발 구현과 아트적 도전 및 구현이 아닌 객체 지향과 GIt 사용에 중점을 두고 개발을 진행 함 프로젝트 소개 프로젝트는 3개의 OS 에 대한 호환 및 확장을 해결하는 것이 문제였고 깃을 처음 사용하는 팀원들이 깃 이용에 능숙해지는 것이 목표 깃은 각 개개인별 기능에 대한 브랜치를 별도로 생성하고, 컨벤션을 만들어 지키는 것을 연습 각 기능은 Scene 별로 구분하고 각 객체들을 Class로 분류하여 객체지향 디자인을 가짐 프레임워크 추상 클래스를 생성하여 각 씬은 상속을 받아 작성하며 각 OS 별 API 를... Read More
-
NetCoreAudio Handler Events TOP NEW
NetCoreAudio Loop 기능 제작 🚨 오디오 플레이어를 제작하고 사요중 중요한 문제가 발생 오디오가 재생이 끝났을때 다시 반복하는 기능이 없는 것 반복기능이 없다면 추가적으로 실행을 시켜주어야하고 이는 코드의 가독성을 낮추고 복잡성을 높히는 문제로 발전하게 될 것이라고 판단되어 Loop 기능을 만들기로 함 Event Handler NetCoreAudio에는 PlaybackFinished라는 Event Flag가 존재 이는 오디오파일의 플레이가 종료 되었을 때 true로 변하며, 플레이중에는 false 상태로 존재 해당 Flag 의 상태가 변하면 다시 플레이하는 메서드를 ... Read More
-
OS API SoundManager TOP NEW
NetCoreAudio NetCoreAudio-Github - 링크 해당 라이브러리를 사용하면 모든 운영 체제의 .NET Core 환경에서의 오디오 파일 사용이 가능해집니다. 메서드 Play(string filePath) 현재 재생을 중지하고, 지정된 오디오 파일을 재생 재생 bool 은 true, 일시 중지는 false Pause() 일시 정지 bool 은 true를 반환 Resume() 일시 정지 되어있던 재생을 다시 시작 Pause bool = true Stop() 재생을 정지하고 버퍼를 삭제 정지 된 재생을 Resume 처럼 중단 지점... Read More
-
C# Mac Terminal Build TOP NEW
C# IDE 가 아닌 Terminal에서 실행하기 IDE에서 빌드는 쉽게 되지만, 실제 콘솔에서 작동하는 환경을 보기 위해 터미널 빌드 실행 1. Terminal 프로젝트 접근 cd 프로젝트 Root cd Documents/GitHub/HexCore/TeamDungeon 2. DotNet Build 프로젝트에서 직접 dotnet을 이용해서 프로젝트를 빌드 프로젝트 루트 $ dotnet build 해당 Warning은 Null 값이 있을 수 있다는 경고문이며, 실제 프로젝트 코드를 수정하면 된다 빌드가 성공적으로 수행 되면 해당 메세지를 볼 수 있다 3. Dot... Read More
-
Json Data Null TOP NEW
JSON == Null 해결 프로젝트에서 _solution_과 Debug Log 를 Switch 매칭 시켜서 해당 문자열을 출력하는 로직 구현 첫번째 ModifyVariables를 제외하고는 나머지 항목에 대해서는 Null이 나오는 상황 JSON Data [ { "ModifyVariables" : [ "변수 범위를 재조정하고 있습니다. 예상치 못한 값 할당을 방지하기 위해 범위를 체크합니다.", "변수 할당 값이 올바른지 확인하고, 필요한 경우 수정을 진행하고 있습니다.", "데이터 타입 불일치 문제를 발견하여, 타입을 적절하게 변경하고 있습니다.",... Read More
-
Json 다루기 TOP NEW
-
C# Mac && Window 공동 작업을 위한 ConsoleSize Fixer TOP NEW
Console Size Fixer 제작 Window와 작업하면서, Mac에서는 Console 크기에 대한 설정이 불가능하여 협업을 하면서 문제가 발생했습니다. 서로간에 사이즈를 맞추지 않고 작업을 하게되면 결과물의 인터페이스가 서로 따로 놀게되어 결과물의 퀄리티가 떨어질 수 있기 때문에 최소한의 크기의 가이드가 필요했습니다. 조건은 다음과 같습니다. Utility의 조건 최소한의 사이즈는 유지한체 더이사 벗어나지 않도록 랜더링 할 수 있는 가이드라인 Window Mac 모두 호환되는 Cross Platform 적용이 가능한 코드일 것 팀원 모두가 쉽게 사용할 수 있어야 하는 코드... Read More
-
String Builder 메서드 TOP NEW
String Builder Method Append 현재 StringBuilder의 끝에 문자열을 추가 StringBuilder sb = new StringBuilder("Hello"); ab.Append(" World") Console.WriteLine(sb); 결괏 값 => "Hello World" AppendLine 지정된 문자열과 기본 줄 종결자를 현재 StringBuilder 객체의 끝에 추가 합니다. StringBuilder sb = new StringBuilder("Hello"); sb.AppendLine(" World"); Console.WriteLine(sb); ... Read More
-
팀 프로젝트 기획 TOP NEW
-
GameServer 구축 TOP NEW
-
Socket 채팅 기능 TOP NEW
WebSocket 채팅 기능 C# 콘솔 게임을 제작하면 추가적인 온라인 채팅 기능을 구현 Nuget Package => .Net.WebSocket-Sharp Git Hub 최초 Nest Js 의 Socket.io 와 C# 의 SocketIOClient 로 구현 하려고 하였으나 아래의 문제들이 발견 Decoding Error : 두 프레임 워크 및 라이브러리간의 호환성이 문제가 되어 연결이 되지 않는 문제 해당 이슈로 인해서 호환 되는 라이브러리를 찾다가 ‘ws’ 라이브러리를 사용 하기로 함 .Net.WebSocket-Sharp Git Hub 하지만 다음 문제가 발생 toHandS... Read More
-
C# Property TOP NEW
프로퍼티 프로퍼티 선언 class ClassName { Datatype Filed_Name; Access_Modifier Datatype PropertyName { get { return Field_Name; } set { Field_Name = value; } } } get{}, set{} : 접근자 Accessor get : 필드로 부터 값을 읽어오는 역할 set : 필드에 값을 할당하는 역할 자동 구현 프로퍼티 데이터의 오염에 대해선 메소드처럼 안전하고, 데이터를 다룰 때는 필드처럼 간결 C# 3.0 부터 적용 public ... Read More
-
개인과제 프로젝트 3 TOP NEW
Nest JS를 이용한 소켓 서버 구축 – 채팅 기능을 만들기 위한 Nest JS 소켓 서버 구축 오랜만에 백엔드 소켓 서버를 구축하는데 행한 과정들에 대한 레포트 1. Nest JS Project Create 오랜만의 VS CODE 실행 Nest Js 업데이트 npm install -g @nestjs/cli 새로운 프로젝트 생성 nest new DungeonRPG-SERVER daniel@Danielui-MacBookPro GitHub % nest new DungeonRPG-SERVER ⚡ We will scaffold your app in a few seco... Read More
-
C# LINQ 메서드 정리 TOP NEW
블로그를 작성하며 해당 글은 같은 동기 분들의 이해를 돕기 위해 나름 공부하여 쉽게 풀어서이해를 돕기위해 제작 되었습니다.LINQ의 경우 기본적인 반복문을 꼭❗️❗️ 능숙하게 이해를 하시고 나서 사용하시는 것을 추천 드립니다. 부디 LINQ의 이해하시는데 도움이 되길 바랍니다. LINQ LINQ : 데이터 질의 기능 Language INtergrated Query 기본적인 데이터 질의문 From : 어떤 데이터 집합에서 찾을 것인가요? Where : 어떤 값의 데이터를 찾을 것인가요? Select : 어떤 항목을 추출할 것인가요? ... Read More
-
개인과제 프로젝트 2 Title, Login TOP NEW
Title 구성 Title 시작 메인화면 출력 로그인, 계정생성, 나가기 구성 ASCII Art Title 구성 ASCII 제작은 Text to ASCII Generator 이용 각 입력값의 처리는 ConsoleKeyInfo keyinfo = ReadKey 로 작동 구성 ConsoleKeyInfo : 콘솔 키로 표현된 문자, Shift, Alt, Ctrl 보조키의 상태를 포함하여 누른 콘솔 키를 반환 > public readonly struct ConsoleKeyInfo : IEquatable<ConsoleKeyInfo> C... Read More
-
Console Text 게임기획 TOP NEW
-
MarkDown Format TOP NEW
-
Git Page Build 의존성 문제 TOP NEW
GItHub Page Build 문제 해결 – Github Page Build 의존성 문제로 인한 정상적인 페이지 빌드의 버그 발생 Warning Log Run actions/jekyll-build-pages@v1 [9](https://github.com/jhoon8903/jhoon8903.github.io/actions/runs/6794109890/job/18470010385#step:4:10)/usr/bin/docker run --name ghcrioactionsjekyllbuildpagesv109_bd7f43 --label 715fc6 --workdir /github/workspace --rm... Read More
-
C# Argon2를 이용한 비밀번호 암호화 및 검증 TOP NEW
Argon2를 이용한 비밀번호 암호화 및 검증 암호화와 검증의 중요성 암호화는 사용자의 개인정보 보호에 핵심적인 역할을 합니다. 특히 비밀번호와 같은 민감한 정보는 안전하게 저장해야 하며, Argon2 알고리즘은 이러한 정보를 안전하게 암호화하는 데 현재 널리 사용되는 방법 중 하나입니다. Argon2 알고리즘 소개 Argon2는 메모리와 시간 비용을 조절할 수 있는 강력한 암호화 알고리즘입니다. 이는 고도의 커스터마이징이 가능하며, 병렬 처리, 메모리 양, 해시 길이, 솔트 길이를 조절할 수 있습니다. Argon2 사용 방법 비밀번호 해시 생성 // 비밀번호 해시 생성 public static s... Read More
-
Linq Skip, Take TOP NEW
LINQ - Skip, Take 데이터 컬렉션을 관리하는 기능을 제공하는 Skip, Take 컬렉션에서 특정 수의 요소를 건너뛰거나 선택하는데 사용 됨 Skip 시퀀스의 시작에서 지정된 수의 요소를 건너뛰고 나머지 요소를 반환array.Skip(2)의 배열은 처음 두 요소를 건너뛰고 나머지 부분을 반환 int [] array = new int[] {0,1,2,3,4,5} result = array.Skip(2); result // [2,3,4,5]; Take 시퀀스의 시작에서 지정된 수의 연속된 요소를 반환array.Take(5)는 배열의 처음 다섯 요소를 반환 int... Read More
-
문자열 내 마음대로 정렬하기 (Array, CompareTo) TOP NEW
Array Sort 프로그래머스 문제 중 문자열 내 마음대로 정렬하기 문제 관련 Array.Sort와 CompareTo 메소드를 이용한 문자열 정렬에 관한 내용 Array.Sort 메서드 Array.Sort는 .NET 프레임워크에서 제공하는 다재다능한 메서드로, 단일 차원 배열 내의 요소들을 정렬합니다. 기본 정렬부터 개발자가 정의한 맞춤 정렬 로직에 이르기까지 다양한 정렬 요구 사항에 대응하기 위한 여러 오버로드를 제공합니다. 기본 정렬 가장 간단한 형태의 정렬은 Array.Sort를 호출하고 정렬할 배열을 전달함으로써 이루어집니다: int[] numbers = { 3, 1, 4, 1, 5, ... Read More
-
C# TicTacToe Console Game TOP NEW
Console TicTacToe 만들기 Game Logic public static class TicTacToe() { private static char[,]? _board; private const int Size = 3; private static readonly Random Random = new Random(); // TicTacToe 게임 실행 public static void TicTacToeGame() { // 보드를 생성할 size의 보드 할당 _board = new char[Size,Size]; // 보드 초기화 InitBoard(); // Console에 Bo... Read More
-
C# StringBuilder TOP NEW
StringBuilder Class Efficiency (효율성) C# 에서 문자열은 불변 즉, 문자열을 생성한 후에는 변경할 수 없음 문자열을 수정하는 것처럼 보이는 작업은 실제로 새 문자열을 생성하는 것 이것의 문제는 문자열을 연결하는 등 복잡한 문자열 작업을 할 때 상당한 성능 오버헤드를 초래할 수 있음 StringBuidler는 가변적으로 인스턴스를 생성하지 않고도 변경할 수 있음 자주 수정해야하는 작업에 대해 효율적인 작업 방법 Capacity (용량) Capacity 속성이 있고, StringBuilder가 포함 할 수 있는 문자의 수를 나타냄 내용이 현재 용량을 초과하면, 보통... Read More
-
C# Base3 <=> Base10 3진수 뒤집기 TOP NEW
-
C# Linq - Aggregate TOP NEW
Aggregate LINQ 에서 제공 되는 메서드 시퀀스에 대해 누적하는 연산을 수행하고 최종 결과를 반환 곱셈, 합계, 문자열 등 다양한 누적 연산에 사용 문자열 내림차순으로 배치하기 문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, (s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.) “Zbcdefg” => “gfedcbZ” using System; using System.Linq; public class Solution { public string solution(string s) { ... Read More
-
ASCII Char 문자 다루기 TOP NEW
-
Mini Game Refactoring TOP NEW
멤버 소개 카드 게임 개발 역할 : 코드 전체 리팩토링 및 수정 디버깅 전체 팀원들의 코드를 취합하여 부족한 기능 구현에 대한 완성 GameManger 작성 전체 UI 수정 카드 매치 로직 디버깅 팀원 전체 코드 리뷰 StartScene Script Class StartScene 기존 코드 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement; using UnityEngine.UI; public class StartScene : Mon... Read More
-
미니프로젝트 트러블 슈팅 (카드 뒤집기) TOP NEW
문제 상황 게임에서 생성된 카드 인스턴스에 붙은 CardOpen 메소드가 작동하지 않는 문제가 발생했습니다. 진행한 과정과 결과 Raycast로 현재 찍고 있는 것이 무엇인지 파악 결과: 레이가 출력되지 않았습니다. DrawRay로 확인 결과: Scene View에서 레이가 출력되지 않았습니다. Sorting Layout 및 Order in Layer 순서 조정 결과: 문제 해결에 도움이 되지 않았습니다. 해결 문제 원인 2D 게임이기 때문에 Physics2D.Raycast를 사용해야 하는데, 3D용 Physics.Raycast를 사... Read More
-
Text Mesh Pro Create TOP NEW
-
C# Interface TOP NEW
Interface interface interface_name { returnType methodName_1(params); returnType methodName_2(params); returnType methodname_3(params); } interface ILogger { void WriteLog(string message); } 이벤트, 인덱서, 프로퍼티, 메소드 만을 가질 수 있음구현부가 없고, 한정자도 사용 불가능하며 기본적으로 public으로 선언됨 Interface는 인스턴스를 가질 수 없지만,인터페이스를 상속받는 Class의 인스턴스를 만드는 것은 가능함조건- ... Read More
-
Zep R 우리 게임 좀 4조 게임 기획 TOP NEW
-
C# Tuple 튜플 TOP NEW
튜플 Tuple 형식 이름이 없는 여러 필드를 담을 수 있는 구조체 값 형식 이기 때문에 프로그램에 장기적인 부담을 주지 않는 장점이 있음 // 명명되지 않은 튜플 (Unnamed Tuple) var tuple = (123,789); // tuple.Item1 : 123; // tuple.Item2 : 789 // 명명된 튜플 (Named Tuple) var tuple = (Name: "Daniel", Age : 17); // tuple.Name : "Daniel" // tuple.Age : 17 var (name, age) = tuple; // 구조분해 할당 // name : "Daniel... Read More
-
C# Struct 구조체 TOP NEW
-
C# 상속 TOP NEW
Derived Class OOP 프로그래밍에서는 물려받는 클래스 (파생 클래스)가 물려줄 클래스(기반 클래스)를 지정 ```csharp class 기반_클래스 { / 멤버 선언 } class 파생_클래스 : 기반_클래스 { / 아무 멤버를 선언하지 않아도 기반 클래스의 모든 것을 물려받음 / 단, private 으로 선언된 멤버는 예외 } - 파생 클래스는 자신만의 고유한 멤버 외에서 기반 클래스로부터 물려받은 멤버를 가짐 - 파생 클래스가 기반 클래스 위에 새로운 멤버를 얹어서 만들기 때문 ![](https://i.imgur.com/JGidYIY.jpg) - 호출 순서 1. 객체 생성시 기반... Read More
-
C# Class this Keyword TOP NEW
This 객체가 자신을 지칭할 때 사용하는 키워드 객체 외부에서는 개체의 필드나 메소드에 접근할 때 개개체의 이름을 사용(변수, 식별자 등) 객체 내부에서는 자신의 필드나 메소드에 접근할 때 this 키워드 사용 class Employee { private string Name; public void SetName(string Name) { this.Name = Name; } } this를 사용시 this.Name은 Employee 자신의 필드, Name은 SetName() 메소드의 매개변수 가 됨 public class ThisKeyword ... Read More
-
C# 객체 복사 TOP NEW
객체 복사하기 : 얕은 복사와 깊은 복사 얕은 복사 (Shallow Copy) internal class MyClass { public int MyField1; public int MyField2; public static void ShallowCopy() { MyClass source = new MyClass(); source.MyField1 = 10; source.MyField2 = 20; MyClass target = source; target.MyField2 = 30; Console.WriteLine("Shallow C... Read More
-
C# 정적 필드와 메소드 TOP NEW
Static 메소드나 필드가 클래스의 인스턴스가 아닌 클래스 자체에 소속되도록 지정하는 한정자 static 으로 한정하지 않은 필드는 자동으로 인스턴스에 소속 static으로 한정한 필드는 클래스에 소속 인스턴스에 소속된 필드의 경우 class MyClass { public int a; public int b; public static void Main() { MyClass obj1 = new MyClass(); obj1.a = 1; obj1.b = 2; MyClass obj2 = new Myclass(); obj2.a = 3; obj2.b = 4; } } ... Read More
-
C# 메소드 오버로딩 TOP NEW
-
C# 참조에 의한 매개변수 전달 TOP NEW
Pass by Reference 참조에 의한 전달은 매개변수가 메소드에 넘겨진 원본 변수를 직접 참조 메소드 안에서 매개변수를 수정하면 이 매개벼수가 참조하고 있는 원본 변수에 수정이 이루어짐 private static void Swap(ref int a, ref int b) { int temp = b; b = a; a = temp; } int x = 3; int y = 4; Swap(ref x, ref, y); private static void Swap(ref int a, ref int b) { (b, a) = (a, b); } public static void ... Read More
-
C# 비트연산자 TOP NEW
-
문자열 함수 TOP NEW
문자열 검색 private static void String() { string greeting = "Good Morning"; WriteLine(greeting); / IndexOf (return int) / 찾으려고 하는 지정된 문자 또는 문자열의위치 검색 WriteLine($"IndexOf `Good` : {greeting.IndexOf("Good")}"); WriteLine($"IndexOf `o` : {greeting.IndexOf('o')}"); / LastIndexOf (return int) / 찾으려고 하는 지정된 문자 또는 문자열의 위치를 '뒤... Read More
-
부동 소수점 형변환 TOP NEW
크기가 다른 부동 소수점 형변환 float, double 은 소수를 2진수로 바구어 메모리에 보관 각 형식에 대한 변화를 주려면 10진수 복원 후 다시 2진수로 변환해야함 다만 이 과정에서 2진수로 표현하는 소수가 완전하지 않아 (무한소수) 정밀성이 떨어질 수 있음 private static void FloatConversion() { float a = 69.6875f; WriteLine("a: {0}",a); double b = a; WriteLine("b: {0}", b); WriteLine("69.6875 == b:{0}", 69.6875 =... Read More
-
C# 박싱 & 언박싱 TOP NEW
-
부동소수점 TOP NEW
-
C# 오버플로우 TOP NEW
-
C# 음수보수법 TOP NEW
-
Unity URP TOP NEW
유니버셜 렌더 파이프라인(URP) Universal Render Pipeline 범용으로 사용 가능한 렌더링 파이프라인 고품질의 렌더링을 제공하며 PC, 콘솔, 모바일, VR, AR 등 거의 모든 플랫폼에 적용 가능 Post Processing 기능과 통합되어 다양한 후처리 그래픽 효과 제공 Install Asset Create Setting Graphics Quality Setting Post Processing Vinetting 화면의 주변이나 모서리를 어둡게 처리하는 것으로 자연스럽게 화면의 가운데 부분으로 시선을 모으는 효과 몰입도를 증가시키는 효과 중 하나로... Read More
-
Unity Photon Cloud TOP NEW
-
Unity Input System TOP NEW
Input System Legacy Input System 구조 private void Update() { // 키보드 입력값 var h = Input.GetAxis("Horizontal"); var v = Input.GetAxis("Vertical"); var moveDir = (Vector3.forward * v) + (Vector3.right * h); transform.Translate(moveDir.normalize * Time.deltaTime * moveSpeed); // 점프 로직 if (Input.GetKey(KeyCode.Space)) { // Space 키 입력시 점프 로... Read More
-
Unity 오클루전 컬링 TOP NEW
오클루전 컬링 (Occlusion Culling) 렌더링 부하를 줄여주는 기법 중 하나 3D 게임 및 콘텐츠 개발에 필수적 요소 오클루전 (Occlusion) : 한 물체가 다른 물체를 가리는 것 컬링 (Culling) : 도태시킨다 (제거한다) ❗️Occlusion Culling 는 가려진 물체는 제거한다라는 의미 카메라에 보이지 않는 객체는 렌더링하지 않는다 불필요한 요소를 렌더링에서 제외함으로써 렌더링 부하를 줄이고 속도를 향상시킴 컬링 방식 프러스텀 컬링 (Frustum Culling) 카메라의 시야에 범위에 들어와 있는 물체만을 렌더링 하고 시야 범위 ... Read More
-
Unity Scene 관리 TOP NEW
-
C# CLR TOP NEW
CLR Common Language Runtime C#으로 만든 프로그램이 실행되는 환경 런타임이 C# 뿐만 아니라 CLS(Common Language Specification) 규격을 따르는 모든 언어로 작성된 프로그램을 지원 C# Compiler는 C# 소스 코드를 컴파일해서 IL(Intermediate Language)이라는 중간 언어로 작성된 실행 파일을 만들어 냄 실행 => IL => Native Code (JIT(Just In Time Compile)) 언어간 상속 지원, COM과의 상호 운용성 지원, 자동 메모리 관리 기능 등을 제공 Read More
-
Unity Light Probe 라이트 프로브 TOP NEW
-
Unity 라이트매핑 TOP NEW
라이트매핑 Scene에 배치괸 모든 3D Object Model에 영향을 미치는 직접 조명, 간접 조명 및 그림자의 효과를 Texture로 미리 만드는 과정 결과로 만들어진 Texture File을 Lightmap이라고 함 Lightmap을 만드는 과정을 Bake라고 함 Lightmap은 Runtime 시 실시간 Rendering 화면과 Overlay되어 Mixing 됨 Runtime에 전역 조명에 대한 연산처리를 하지 않고도 높은 품질의 조명 효과를 구현할 수 있음 Generate Lightmap UVs 옵션 외부에서 Import한 3D 모델의 경우 Generate Lightmap ... Read More
-
Unity Lighting Basic TOP NEW
Global Illumination (GI) 전역 조명 3D 지오메트리 (Geometry)에서 직접 광원(Direct Light)과 다른 물체에 반사된 간접 광원(Indirect Light) 및 그림자를 렌더링해 좀 더 사실적인 조명을 구현하는 것을 뜻함 GI 경우 연산처리를 많은 부하를 주기 때문에 대상 하드웨어의 성능에 따라서 실시간 연산이 거의 불가능한 경우가 있음 실시간 전역 조명(Realtime Gi), 미리 계산된 전역 조명 (Precomputed Realtime GI)을 처리하는 기능 제공 조명 모드 Realtime Mode 실시간 조명으로 설정 Scene에 직접 ... Read More
-
Unity 동적장애물 - NavMeshObstacle TOP NEW
-
Unity RayCast TOP NEW
RayCast (레이캐스트) Unity 에서 특정 경로에있는 객체를 감지하기 위해 사용되는 기술 Ray는 특정한 지점에서 시작하여 한 방향으로 무한히 연장되는 선 Raycasting은 발사체를 쏘거나 AI의 시야를 구현, 또는 개체와 상호작용하는 다양한 상황에 사용 Physisc.Raycast 메서드를 사용 using UnityEngine; public class RaycastExample : MonoBehaviour { public float rayDistance = 10f; public LayerMask hitLayers; void Update() { ... Read More
-
Unity PlayerPrefs TOP NEW
-
Unity Script Event Processing TOP NEW
스크립트에서 Btn Event 처리하기 RunTime에서 발생하는 이벤트 (Call back)처리 UnityEvent 또는 Delegate 이용 private void Start() { // Unity Action Event 연결 _action = () => OnButtonClick(startBtn.name); startBtn.onClick.AddListener(_action); // 무명 메서드 활용 이벤트 연결 방식 optionBtn.onClick.AddListener(delegate { OnButtonClick(optionBtn.name);}); ... Read More
-
Unity Anchor Preset TOP NEW
-
UI TOP NEW
UI UI 형태 IMGUI (Immediate Mode GUI) 즉시 모드 GUI 코드를 이용해 UI를 표시하는 방법 개발 과정에서 간단한 테스트용으로 사용 OnGUI 함수에서 코드를 구현 OnGUI 메서드는 Update와 같이 매 프레임마다 실행 됨, 테스트 이후에는 제거해야함 using UnityEngine; public class IMGUIDemo : MonoBehaviour { private void OnGUI() { GUI.Label(new Rect(10,10,200,50), "SpaceShooter"); if (GUI.Button(new Rect(10,60,100,30)... Read More
-
Unity 오브젝트 검색과 통신 최적화 TOP NEW
오브젝트 검색 FindGameObject FindGameObjectWithTag() FindGameObjectWithTag() 메서드는 지정된 태그를 가진 게임 오브젝트를 빠르게 찾을 수 있게 해줌 유용하긴 하지만, 특히 큰 씬에서는 이 메서드가 성능에 부담을 줄 수 있음 GameObject player = GameObject.FindGameObjectWithTag("Player"); FindGameObjectsWithTag() 동일한 태그를 가진 여러 게임 오브젝트에 접근해야 하는 상황에서는 FindGameObjectsWithTag()가 유용 지정된 태그를 가진 모... Read More
-
Bone 최적화 TOP NEW
Bone Structure Optimization 기존의 Bone 구조 각 관절(Joint)는 GameObject이며, Transform 컴포넌트를 가지고 있음 많은 관절을 가진 3D 모델의 경우 Transform 컴포넌트의 Position, Rotation 처리는 런타임 시 내부적으로 다양한 연산을 처리하므로 최적화 (Optimization)이 필요함 ❗️ 최적화 시점 Bone 구조의 최적화 하는 Optimize game Object 옵션의 경우 반드시 프리팹으로 전환하기 전에 해야함 1. 3D Model Object Select 3D 모델의 게임오브젝트를 선택 후 In... Read More
-
Unity 문자열 보간 TOP NEW
C#의 문자열 보간 (string Interpolation) / 일반적인 문자열 조합 Debug.Log("Player Hp: " + currHp + "/" + initHp + '=' + currHp/initHp); / LogFormat을 사용한 표현 Debug.LogFormat("Player Hp: {0}/{1}={2}", currHp, initHp, currHp/initHp); / 문자열 보간($)을 사용한 표현 Debug.Log($"Player Hp: {currHp}/{initHp} = {currHp/initHp}}"); Read More
-
Unity Resources Folder TOP NEW
Resources Folder Run Time 에서 Script를 통해 직접 로드가 가능해짐 Folder Name은 “Resources”로 철자가 틀리면 안된다. ⚠️ Resources Folder 내에 있는 모든 에셋은 런타임에 직접 불러와 사용할 수 있지만, 빌드할 떄 실행 파일에 모두 포함됨, 게임에 사용하지 않는 리소스가 있으면 안됨 // Blood Object private GameObject _bloodEffect; // Resource Folder에서 Prefabs Load _bloodEffect = Resources.Load<GameObject>("BloodSpr... Read More
-
Unity Navigation TOP NEW
Navigation 중간에 장애물이 있거나 다른 충돌 및 경합을 벌이는 경우 길 찾기(Navigation)기능이 필요 A* Pathfinding 알고리즘 (가장 많이 쓰이는 네비게이션 에셋) 유니티에서 제공하는 네비게이션 방식 스테이지를 구성하고 있는 3D Mesh (지형 : Geometry)를 분석, NavMesh 데이터를 미리 생성하는 방식 추적할 수 있는 영역(Walkable Area)과 장애물로 판단해 지나갈 수 없는 영역(Non Walkable Area)의 데이터를 Mesh 로 미리 만드는 것 높은 곳에서 낮은 곳으로 연결하는 오프 메시 링크(Off Mesh Link) 기능을 이... Read More
-
Unity Finite State Machine, FSM && Animator 2 TOP NEW
FSM 단점 상태가 많아질 수록 상태와 상태 간의 연결(Transition)이 복잡 해짐 코드의 확장과 유지 보수가 어려워짐 단점 보안 계층적 유한 상태 머신 (HFSM) - Hierachical Finite State Machine 행동 트리 (BT) - Behaviour Tree 메카님 Mecanim Animation Mecanim의 경우 Unity 4.0 부터 적용 리타게팅 기능을 제공 기존 [[2023-09-26-Legacy_Animation]]에서 처리하기 어렵던 유연하 애니메이션 Humanoid (인체형) 모델의 필수인 본(Bone, 뼈대) 구조와 일... Read More
-
Unity Coroutine TOP NEW
Coroutine Message Loop / Blocking / Multi thread Unity Life Cycle 초기화 => 게임로직 => 랜더링 => 정리 => 기타 이벤트 등 의 일련의 과정 일반적인 함수를 호출하면 해당 함수 안의 로직을 다 수행해야만 실행이 끝남 만약, 수행 로직의 시간이 10초 라면 10초 동안 메시지 루프의 다른 로직의 실행이 불가능 해짐 이를 Blocking(블로킹) 이라고 함 메세지 루프에 의한 블로킹을 해결하기 위해 병렬로 함수를 호출 하는 것이 Multi Thread(멀티스레드) private void Fade() { ... Read More
-
Unity Audio TOP NEW
Audio Component AudioListener : 소리를 듣는 역할 ❗️ 한 Scene에서 여러대의 카메라를 사용시 반드시 AudioListener는 하나만 존재 해야 한다 AudioSource : 소리를 발생 Basic Settings Audio Clip: 이 AudioSource가 재생할 오디오 클립을 선택합니다. Mute: 오디오를 음소거합니다. Bypass Effects: 이 AudioSource에 적용된 오디오 이펙트를 무시합니다. Bypass Listener Effects: 오디오 리스너에 적용된 이펙트를 무시합니다. Bypass Reverb Zones: 리... Read More
-
Unity OverLap TOP NEW
OverLap Function Physics.OverlapSphere 구조: 중심 위치와 반지름을 기반으로 하는 구 리소스 사용 순서: 일반적인 사용 순서 중 상대적으로 높음 Physics.OverlapBox 구조: 중심 위치와 크기를 기반으로 하는 상자 리소스 사용 순서: 일반적인 사용 순서 중 중간 Physics.OverlapCapsule 구조: 두 점과 반지름을 기반으로 하는 캡슐 리소스 사용 순서: 일반적인 사용 순서 중 중간 Physics.OverlapMesh 구조: 메쉬와 메쉬의 변형을 기반으로 함 리소스 사용 순서: 상대적으로 높음, 메쉬의 복잡도에 ... Read More
-
Unity Quaternion TOP NEW
Quaternion (쿼터니언) Unity 에서 사용되는 각도의 단위 복소수 4차원 벡터 (four-dimensional complex number) 4개의 원소로 표현 (x, y, z, w) 🔆 일반적인 오일러 각 (Euler Angle) 🔆 Unity 에서 사용되는 쿼터니언 타입 Euler Angle 의 문제점 물체가 회전하는 동안 X, Y, Z 축 중 2개의 축이 겹쳐지면, 어느 축으로도 회전하지 않고 잠기는 현상 Gimbal Lock 발생 Quaternion의 해결 방법 세 개의 축을 동시에 회전시켜 짐벌락 현상을 방지 짐벌락 방지를 위해 모든 객체의 Rot... Read More
-
Unity 충돌 지점과 법선 벡터 TOP NEW
Normal Vector (법선 벡터) 두 물체가 충돌한 평면 또는 구면의 접점에서 수직 방향으로 바라보는 벡터 충돌지점 정보 Collision Class public ContactPoint GetContact(int index); // 단일 충돌 정보 public int GetContact(ContactPoint[] contacts); // 다중 충돌 정보 struct ContactPoint { normal // 충돌 지점의 법선 otherCollider // 충돌 지점의 다른 Collider point // 충돌 지점의 위치 separation // 충돌한 두 Collider 간의 거... Read More
-
Unity Trail Renderer TOP NEW
Trail Renderer 오브젝트의 궤적을 표시하는 컴포넌트 오브젝트 선택 => Component => Effects => Trail Renderer Trail Renderer Component Width (궤적 너비) - float 시작점과 끝 점을 조정하여 Trail의 너비를 설정 할 수 있음 Time (지속 시간) - float 궤적의 유지 시간 설정 5.0으로 설정 시 Trail은 5초간 유지 Min Vertex Distance (최소 Vertex 거리) - float 새로운 궤적 포인트가 생성되기 전 오브젝트가 이동해야 하는 최소... Read More
-
Collider TOP NEW
Collider Component 충돌 감지를 위한 컴포넌트 Box Collider (연산 3등) Center / Size 로 콜라이더 조절 Sphere Collider (연산 1등) 가장 빠른 처리 속도의 Collider Radius 속성으로 반지름 조절 정밀한 충돌 감지를 제외하고 사용 권장 Capsule Collider (연산 2등) 인체, 나무, 가로등 과 같은 모델의 충돌체로 많이 쓰임 Height : Capsule 높이 Direction : Height 변경시 늘어나는 방향 설정 (Default Y Axis) Mesh Collider 리소스... Read More
-
Unity Physics Manager TOP NEW
Physics Manager Gravity (중력) - Vector3 Type Rigidbody의 Use Gravity 속성에 체크하면, 중력에 설정된 값으로 중력이 작용하게 됩니다. 일반적으로 지구의 중력 가속도와 같은 -9.81의 값이 Y축에 적용됩니다. 예를 들어, 우주 환경과 같이 중력이 약한 환경에서는 이 값을 줄여서 적용할 수 있습니다. Default Material (기본 Material) - PhysicMaterial Type 두 물체가 충돌했을 때의 물리적 반응(탄성, 마찰 등)을 전역적으로 설정하는 Material입니다. None으로 설정하면, 각 Rigidb... Read More
-
RigidBody TOP NEW
RigidBody 물리학 용어 : 외력을 가해도 크기나 형태가 변하지 않는 이상적인 물체 아주 큰 힘을 받지 않는 한 부서지지 않는 대부분의 고체는 강첼로 간주한다. Mass (질량 float Type) 상대적인 의미의 질량으로 1Kg, 1g 등의 무게가 아님 편의상 1Kg으로 가정 Drag (이동 마찰 계수 float Type) 이동할 때 적용되는 마찰계수 (저항) Angular Drag (회전 마찰 계수 float Type) 회전할 때 적용되는 마찰계수 (저항) Use Gravity (중력 bool Type) 중력의 적용 여부 I... Read More
-
Unity 선형보간 TOP NEW
선형보간 / 구면 선형보간 선형 보간 (Liner Interpolation) 구면 선형 보간 (Spherical Linear Interpolation) 시작점과 끝점 사이의 특정 위치의 값을 추정할 때 사용 보간 함수는 현재 못푯값으로 변경할 때 갑자기 변경하지 않고 부드럽게 변경시키는 로직에 많이 활용 Vector3.Lerp(시작 좌표, 종료 좌표, t); Mathf.Lerp(시작 값, 종료 값, t); Quaternion.Lerp(시작 각도, 종료 각도, t); 선형보간 차트 (Liner Interpolation) [2021_유니티 절대강좌_주인공 케릭터 제작] ... Read More
-
Unity Level of Detail TOP NEW
-
Unity Shadow TOP NEW
-
Unity Legacy Animation TOP NEW
-
Unity Vector3 회전 TOP NEW
Rotate (회전) 기초적인 Rotate 함수 void Rotate (Vector3 eulerAngles, [Space relativeTo]); void Rotate (float xAngle, float yAngle, float zAngle, [Spave relativeTo]); void Rotate (Vector3 axis, float angle, [Space relativeTo]); 🌝 y축을 기준으로 30도 회전시키는 예제 tr.Rotate(new Vector3(0.0f, 30.0f, 0.0f)); tr.Rotate(0.0f, 30.0f, 0.0f); tr.Rotate(Vector3.u... Read More
-
Unity Vector 이동 TOP NEW
-
Unity Sky TOP NEW
-
Unity Rendering Mode TOP NEW
-
Unity Texture TOP NEW
-
Unity Post Processing TOP NEW
-
Unity Cinemachine TOP NEW
-
Unity Illumination TOP NEW
Global Illumination 물체 표면에 직접 들어오는 빛뿐만 아니라 다른 물체의 표면에서 반사되어 들어온 간접광까지 표현 매우 높은 처리량 요구 Realtime Global Illumination Baked Global Illumination 고정된 오브젝트에만 적용 두 설정의 차이는 GI에 반영될 빛이 실시간으로 변할 수 있도록 허용하는지의 여부 두 설정 모두 빛이 입혀질 대상이 될 오브젝트들은 고정되어 있어야 함 Realtime Global Illumination 빛의 세기, 방향 등이 달라졌을 때 그 변화를 간접광에 실시간으로 반영 라이트맵을 여러 방향... Read More
-
Unity Singleton TOP NEW
Singleton 게임 매니저처럼 관리자 역할을 하는 오브젝트는 일반적으로 프로그램에 단 하나만 존재해야함 언제 어디서든 즉시 접근 가능해야함 단일 오브젝트 점수, UI, 게임 상태를 관리하는 게임 매니저는 게임에 단 하나만 존재해야 함 손쉬운 접근 어느 곳에서도 쉽게 접근할 수 있도록 구현 해야 함 싱글턴을 사용하는 이유 게임 매니저 오브젝트는 단 하나만 존재 어떤 곳에서고 손쉽게 게임 매니저 오브젝트에 접근 가능 Static 싱글턴 패턴을 구현 시 정적(static) 변수의 특징을 활용 메모리에 단 하나만 존재하고 모든 오브젝트가 공유 Class 이... Read More
-
Unity Finite State Machine, FSM && Animator TOP NEW
FSM Finite State Machine 어떤 애니메이션 클립을 어떤 상항에서 어떨게 재생할지 결정하는 지도 유한한 수의 상태가 존재하며, 한 번에 한 상태만 ‘현재 상태’가 되도록 프로그램 설계하는 모델 FSM은 어떠한 상태 A 에서 다른 상태 B 로 전이(Transition)하여 현재 상태를 전환 여러 상태 중 하나의 상태만 현재 상태가 되지만 전이를 통해 현재 상태를 다른 상태로 이동할 수 있음 Animator Controller FSM을 이용한 애니메이션을 결정하는 상태도를 표현하는 에셋 Entry : 현재 상태가 진입하는 ‘입구’ Exit : 상태 머신... Read More
-
Utniy_Space 공간 TOP NEW
Unity Coordinate System 3D 공간에 배치하는 3D 오브젝트는 좌표(Coordinate)를 가짐 원점 Vector3 (0,0,0) 을 기준 x => 오른쪽 y => 위쪽 z => 앞쪽 전역공간, 오브젝트 공간, 자식 공간 3가지의 위치속성이 있음 전역공간 Global Space World의 중심이라는 절대 기준이 있는 공간 (World Space) 전역 좌표계(Global Coordinate Space)를 기준으로 함 모든 오브젝트가 원점 (0,0,0)에서 얼마나 떨어져 있는지가 오브젝트의 좌표가 됨 Global / Local (Y... Read More
-
Csharp TOP NEW
C# 이란 무엇인가? MS에서 개발한 객체 지향 프로그래밍 언어 .NET 프레임 워크와 함께 도입되었으며, 안전하고 현대적인 소프트웨어 개발을 위해 설계 JAVA C++과 유사한 문법 구조를 가짐 struct(구조체) 와 class 의 주요 차이점 struct는 값 타입으로 stack에 저장, class는 참조 타입으로 heap에 저장 Value Type : struct, enum, int, float, double, bool, char Reference Type : class, interface, delegate, string, array struct는 상속 지원을 하지 않... Read More
-
Unity TOP NEW
Unity의 생명주기 메서드 중 Awake(), Start(), Update()의 차이점 Awake() 게임 오브젝트가 초기화될 때 호출됩니다. 스크립트 인스턴스가 로딩될 때 한 번만 호출됩니다. 모든 객체가 Awake()를 호출한 후에만 Start()가 호출됩니다. Awake()는 게임 오브젝트가 비활성 상태여도 호출됩니다. 주로 변수나 참조의 초기화에 사용됩니다. Start() Awake() 다음에 호출되며, 첫 프레임 업데이트 전에 한 번만 호출됩니다. 게임 오브젝트가 활성 상태인 경우에만 호출됩니다. 다른 모든 스크립트의 Awake()가 호출된 후에 호출되므로... Read More
-
OnCollision || OnTrigger TOP NEW
OnCollision 일반적인 콜라이더를 가진 두 게임 오브젝트가 충돌할 때 자동으로 실행 되는 이벤트 메소드 충돌한 두 콜라이거는 서로 통과하지 못한다. 오브젝트 컴포넌트에는 Rigidbody가 있어야 한다. 별도의 호출 없이 이벤트가 발생되면 자동으로 호출되어 실행된다. 매개변수로는 “Collision” 타입의 매개변수를 받으며, 충돌 정보(오브젝트 Info, position, force 등)를 지님 두 물체가 물리적으로 충돌했을 때의 반응을 처리하려는 경우 (예: 볼이 벽에 부딪혀 튕기는 효과). 땅에 닿았을 때의 플레이어 반응 등. OnCollisionEnter (Co... Read More
-
Mathf Class TOP NEW
Mathf Class Unity에서 제공하는 다양한 수학 함수 상수 PI: float - 원주율 값. Infinity: float - 무한대 값. NegativeInfinity: float - 음의 무한대 값. Epsilon: float - 아주 작은 수. 기본연산 Abs(float f) -> float: 절대값 반환. Sign(float f) -> float: 값의 부호 반환 (+1, -1 또는 0). Max(float a, float b) -> float: 두 값 중 최대값 반환. Min(float a, float b) -> float: 두 값... Read More
-
Monster_Stars TOP NEW
Monster Stars - Merge Defense 개발 기간 : 2023.05.09 ~ 2023.09.08 (120 Days) 기획 : Action Fit 배포 : Google Play ( Available in 영국 and 필리핀 ) Game Introduction 인간, 엘프, 드워프는 몬스터들의 성일 탐내며 침략하려 합니다. 몬스터들의 위기의 순간, 플레이어는 몬스터들을 레벨업하고 조합하여 성을 방어하게 됩니다. 가장 강력한 몬스터를 조합하여 침략자들로부터 성을 지켜냅시다. 게임은 Tile Match Merge, Rogue-like, Defense 요소가 결합된 미드코어... Read More
-
Tutorial TOP NEW
-
Language Setting TOP NEW
Language Setting 언어는 기획에서 설정가능하도록 CSV화 하고 이를 불러오는 역할만 수행 using System.Collections.Generic; using UnityEngine; namespace Script.RewardScript { public class Language : MonoBehaviour { public enum LanguageType { Korean, English } public LanguageType selectedLanguage = LanguageType.Korean; private readonly Dictiona... Read More
-
Status Save && Load TOP NEW
-
Status Effect TOP NEW
-
DetectEnemies TOP NEW
-
Match_Test Build TOP NEW
-
Match_Merge TOP NEW
3 4 5 및 특수매치 각 매치 되는 배열을 인덱스로 분류하여 각 상황별 매치 업그레이드 using System.Collections; using System.Collections.Generic; using Script; using Script.CharacterManagerScript; using UnityEngine; public sealed class MatchManager : MonoBehaviour { [SerializeField] private SpawnManager _spawnManager; private IEnumerator ReturnAndMoveCharacter(GameOb... Read More
-
3 Match_Respawn_motion TOP NEW
3 Match Lerp를 이용한 Respawn 움직임 using System.Collections.Generic; using System.Linq; using Script.CharacterManagerScript; using UnityEngine; using DG.Tweening; using UnityEngine.TextCore.Text; using System.Collections; namespace Script { public class SpawnManager : MonoBehaviour { [SerializeField] private GridManager g... Read More
-
3 Match Char LevelUp && Swipe TOP NEW
3 Match Merge Character LevelUp 및 Lerp를 이용한 Swipe 움직임 using System.Collections; using Script.CharacterManagerScript; using UnityEditor.UIElements; using UnityEngine; using UnityEngine.Serialization; namespace Script { public class SwipeManager : MonoBehaviour { private GameObject _startObject; private GameObject _retu... Read More
-
3 Match ReSpawn TOP NEW
3 Match Merge 이후 Respawn 로직 using System.Collections.Generic; using UnityEngine; public class SpawnManager : MonoBehaviour { [SerializeField] private GridManager gridManager; [SerializeField] private CharacterPool characterPool; public void SpawnCharacters() { List<Vector2Int> availablePositions = new List<V... Read More
-
Message && BroadCast TOP NEW
MonoBehaviour 모든 컴포넌트의 기반 유니티 컴포넌트의 구조 유니티의 모든 컴포넌트는 MonoBehaviour을 상속 MonoBehaviour를 상속한 클래스는 게임 오브젝트에서 컴포넌트로 추가될 수 있음 Message 기반 방식 컴포넌트에 기능을 실행시키고 싶을 때는 메시지를 날리는 방식을 사용 실행하고 싶은 기능의 이름을 담아 게임 세상에 메시지를 뿌림 만약 10개의 오브젝트가 있다면, 모은 오브젝트가 메세지를 받음 메세지를 받은 오브젝트가 메시지에 명시된 기능을 가지고 있다면, 해당 기능을 실행 없다면 무시함 메시지 방식의 특징 ... Read More
-
3Match Grid Update1 TOP NEW
Unity에서 3-Match 퍼즐 그리드생성 코드 업데이트 안녕하세요! 이번에는 Unity에서 3-Match Grid 생성코드 업데이트 된 버전입니다. Grid Manager 클래스 소개 using System.Collections; using System.Collections.Generic; using UnityEngine; public class GridManager : MonoBehaviour { public int _gridHeight = 6; public int _gridWidth = 6; public GameObject grid1Sprite; public GameObj... Read More
-
3Match_Merge 시작 TOP NEW
Unity에서 3-Match 퍼즐의 병합 로직 이해하기 안녕하세요! 이번에는 Unity에서 3-Match 퍼즐 게임의 병합 로직을 어떻게 구현하는지 공유하려고 합니다. 아직 완벽하게 작동하지 않는 부분이 있어서, 이 부분에 대한 피드백이나 제안도 환영합니다! MergeManager 클래스 소개 using System.Collections; using System.Collections.Generic; using UnityEngine; public class MergeManager : MonoBehaviour { [SerializeField] private GridManager grid... Read More
-
3Match Grid Proto Type TOP NEW
Unity로 3-Match 퍼즐의 그리드 생성하기 안녕하세요! 지난 포스팅에서 3-Match 퍼즐의 이동 로직을 다뤘는데요, 이번에는 그리드를 생성하고 캐릭터를 배치하는 방법에 대해 알아보려고 합니다. 아직 Unity 초보라서 간단하게만 작성해봤어요. 함께 보시죠! 😄 GridManager 클래스 소개 using System.Collections; using System.Collections.Generic; using UnityEngine; public class GridManager : MonoBehaviour { public int gridHeight = 6; public GameObjec... Read More
-
3 Match RayCast TOP NEW
Unity 이동 및 병합기능 만들기 안녕하세요! 오늘은 Unity를 사용해서 3-Match 퍼즐 게임에서 캐릭터를 이동시키는 간단한 로직을 공유하려고 합니다. 저도 이제 막 Unity를 시작한 초보 개발자라서, 함께 배워가면서 이런 블로그를 작성하게 되었어요. 코드들은 매일 수정되어 업데이트 될 예정입니다. 코드 소개 using UnityEngine; using UnityEngine.EventSystems; using System.Collections; public class MovementManager : MonoBehaviour { public float moveDuration ... Read More
-
Slime Climbing Beta Version TOP NEW
-
Unity Object Pooling & Respawn TOP NEW
using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement; public class ObstaclePool : MonoBehaviour { public static ObstaclePool Instance { get; private set; } private List<GameObject> pooledObstacles; public List<GameObject> obstaclePrefabs; private int pooledAmount = 50; privat... Read More
-
Game 개발 6일차 TOP NEW
-
Game 개발 5일차 TOP NEW
-
게임 개발 5일차 Unity ObjectPooling 트러블\ TOP NEW
Object Polling 최적화 문제 : Polling된 Prefabs 가 Player Collider 충돌시 Destroy 되면서 Pool 에서 삭제가 되 불러올 수 없는 상황 using System.Collections.Generic; using UnityEngine; public class ObstaclePool : MonoBehaviour { public List<GameObject> obstaclePrefabs; public int pooledAmount = 10; public float obstacleLifetime = 5.0f; private Lis... Read More
-
게임 개발 3일차 - Climbing Game TOP NEW
-
Game기획 TOP NEW
-
Unity Attribute TOP NEW
Attribute 어트리뷰트(Attribute)는 C# 프로그래밍 언어에서 특정한 선언(클래스, 필드, 메서드 등)에 대해 추가 정보를 제공하는데 사용 실행 시간(Runtime)이나 컴파일 시간에 특정 작업을 수행하는 데 사용할 수 있음 즉, 어트리뷰트는 선언에 대한 메타데이터를 제공합니다. 사용용도 직렬화 제어: [SerializeField]와 같은 어트리뷰트를 사용하여 private 필드를 인스펙터에 노출 인스펙터 사용자 인터페이스(UI) 커스터마이징: [Range(0, 10)]과 같은 어트리뷰트를 사용하여 인스펙터에서 필드에 대한 슬라이더를 생성 코드 실행의 조건이나 요구사항 ... Read More
-
Unity [SerializeField] TOP NEW
[SerializeField] Serialize는 직렬화 작업 직렬화 : 추상적 데이터를 전송가능한 형태로 바꾸는 것 역직렬화 : 추상적 데이터를 재조립 하는것 Binary Data Save SerializeField Inspector 에서 접근은 가능하지만, 외부 스크립트에서 접근이 불가능하게 하기 위한 방법 private 변수를 inspector에서 접근 가능하게 해주는 기능 일반적으로 Inspector에서 자주 변경해야 하는 private 변수에 쓰인다. c# 스크립트 Inspector View ![](... Read More
-
Unity Script TOP NEW
-
Unity Texture 출력 TOP NEW
-
Unity Light TOP NEW
-
Unity Camera TOP NEW
🔴 Unity Camera 📸 🟢 카메라 오브젝트는 씬에 최소한 1개 이상이 존재해야 함 - 여러개의 카메라를 이용해 CCTV와 같이 분할된 화면을 관찰하는 것도 가능 - 카메라의 이동 or 회전 애니메이션을 추가해 장면의 연출 효과를 주기도 함 🟢 Camera 컴포넌트 - 게임 월드를 보는 ‘눈’ 의 역할을 담당 🟠 Audio Listener 컴포넌트 - 컴포넌트가 내는 소리를 듣는 역할 🟠 Clear Flags - 오브젝트가 존재하지 않는 배경을 어떻게 채울지 정하는 요소 - 주로 2D 게임을 Solld Color, 3D 게임은 Skybox 를 사용 - 카메라를 동시에 여러 대 사용할 때 Dept... Read More
-
Unity Game Object TOP NEW
Game Object 종류 *** 🔴 Empty Object 🟡 GameObject 라는 이름으로 생성됨 🟡 “Transform” 컴포넌트는 Positon (이동) / Rotation (회전) / Scale (크기)가 기본 속성 🟣 주로 게임에는 보이지 않지만, 게임의 여러 요소를 처리하는 오브젝트를 만들 때, Empty Object를 생성 🟣 게임의 여러 요소를 처리하는 컴포넌트를 추가해서 사용 🟢 주기적으로 적을 생성하는 적 Spawner, 스테이지 클리어 조건을 관리하는 StageController 등 🔴 3D Object 🟢 3D 게임을 제작할 때 필요한 실제 사람이나 다양한 형태... Read More
-
Unity 좌표 체계 TOP NEW
-
Unity Engine TOP NEW
🔴 프로젝트 (Project) 🟢 하나의 게임, 콘텐츠, 어플리케이션 *** 🔴 씬 (Scene) 🟢 게임의 장면이나 상태를 저장하는 단위 🟢 하나의 거대한 게임을 씬 단위로 관리하며, 코드를 이용해 이동이 가능하다. 🟡 Intro Scene , Menu Scene , Stage 1 ~ N Scene , Game Over Scene 등 🔵 하이어라키 (Hierarchy) 내부에 존재 🔴 게임 오브젝트 (Game Object) 🟢 씬에 배치되는 하나의 물체를 지칭하는 단위 🟡 모든 게임 오브젝트는 ‘위치(Position) / 회전(Rotation) / 크기(Scale)’를 ... Read More
-
Unity_GetButton TOP NEW
-
Game 기획 TOP NEW
-
Unity 문법 TOP NEW
게임 개발하면서 작성하는 순서 없는 문법 Time.deltaTime transform.position += transform.forward * Time.deltaTime * moveSpeed; 지난 프레임이 완료되는 데까지 걸린 시간 차이를 의미 ( f/s ) 한 프레임을 진행하는데 걸린 시간 성능과 무관하게 프레임당 실행되는 횟수를 보장 정리하면, 슈퍼 컴퓨터는 1초에 1000프레임이라고 가정하자. 그러면 Time.deltaTime는 1/1000(1000분의 1)이다. 이것을 곱하면 1000 * speed * 1/1000 이므로 = speed만 남는다. 게임용 일반 컴퓨터는 1초에... Read More
-
Unity 레이아웃 구조 TOP NEW
-
TypeScript 5.0 Support for export type `*` TOP NEW
TypeScript 5.0에서 type-only 내보내기 및 다시 내보내기 지원 TypeScript 3.8에서 type-only 가져오기가 도입되었을 때, 새로운 구문은 export * from “module” 또는 export * as ns from “module”의 다시 내보내기에는 허용되지 않았습니다. TypeScript 5.0은 이러한 두 가지 형식을 모두 지원합니다: // models/vehicles.ts export class Spaceship { // ... } // models/index.ts export type * as vehicles from "./vehicles"; // main.t... Read More
-
TypeScript 5.0 Resolution Customization Flags TOP NEW
TypeScript 5.0의 Resolution Customization Flags 기능 JavaScript 도구는 이제 위에서 설명한 번들러 모드와 같은 “하이브리드” resolution rules을 모델링할 수 있습니다. 도구들이 약간씩 다른 지원을 제공할 수 있기 때문에, TypeScript 5.0은 구성과 함께 작동 여부에 따라 몇 가지 기능을 활성화하거나 비활성화할 수 있는 방법을 제공합니다. allowImportingTsExtensions –allowImportingTsExtensions는 .ts, .mts 또는 .tsx와 같은 TypeScript 전용 확장자로 서로를 가져올 수 있... Read More
-
TypeScript 5.0 --moduleResolution bundler TOP NEW
–moduleResolution bundler TypeScript 4.7에서는 Node.js의 ECMAScript 모듈에 대한 정확한 탐색 규칙을 더 잘 모델링하기 위해 –module 및 –moduleResolution 설정에 대해 node16 및 nodenext 옵션을 도입했습니다. 그러나 이 모드에는 다른 도구에서 실제로 적용하지 않는 많은 제한이 있습니다. 예를 들어, Node.js의 ECMAScript 모듈에서 상대적인 가져오기는 파일 확장자를 포함해야 합니다. // entry.mjs import * as utils from "./utils"; // wrong - we need to in... Read More
-
TypeScript 5.0 Multiple Conf Files 확장 지원 TOP NEW
Multiple Configuration Files in extends Support 여러 프로젝트를 관리할 때, 다른 tsconfig.json 파일이 확장할 수 있는 “기본” 설정 파일이 있으면 도움이 됩니다. 그래서 TypeScript는 compilerOptions의 필드를 복사하기 위해 extends 필드를 지원합니다. // packages/front-end/src/tsconfig.json { "extends": "../../../tsconfig.base.json", "compilerOptions": { "outDir": "../lib", // ... ... Read More
-
TypeScript 5.0 Enums TOP NEW
All enums Are Union enums TypeScript가 처음으로 Enum을 도입했을 때, 그것들은 동일한 타입을 가진 일련의 숫자 상수에 불과했습니다. enum E { Foo = 10, Bar = 20, } E.Foo와 E.Bar에 대한 특별한 것은 타입 E를 기대하는 것에 할당할 수 있다는 것뿐이었습니다. 그 외에는 거의 숫자였습니다. function takeValue(e: E) {} takeValue(E.Foo); // 작동 takeValue(123); // 오류! TypeScript 2.0에서 Enum 리터럴 타입이 도입될 때까지 Enum이 조금 더 특별해지지 않았습니... Read More
-
TypeScript 5.0 const Type Parameters TOP NEW
TypeScript에서 const Type Parameters 사용하기 TypeScript에서 객체의 유형을 추론할 때 일반적으로 공통적인 유형을 선택합니다. 예를 들어, 다음 예제에서 names의 추론된 유형은 string[]입니다. type HasNames = { readonly names: string[] }; function getNamesExactly<T extends HasNames>(arg: T): T["names"] { return arg.names; } // 추론된 유형: string[] const names = getNamesExactly({ names: ["Alice",... Read More
-
TypeScript 5.0 Decorators TOP NEW
ECMAScript 데코레이터를 사용한 코드 재사용성 향상 ECMAScript에서 데코레이터는 클래스와 멤버를 재사용 가능한 방식으로 사용자 정의 할 수 있는 새로운 기능입니다. 이 기능을 사용하면 코드를 깔끔하게 유지하고 반복을 줄일 수 있습니다. 이 글에서는 데코레이터를 사용하여 로깅 및 바인딩과 같은 공통 작업을 처리하는 방법을 살펴보겠습니다. 예를 들어, 클래스의 메서드에 로그를 추가하려면 다음과 같이 작성할 수 있습니다: class Person { name: string; constructor(name: string) { this.name = name; } ... Read More
-
TypeScript 5.0 추가된 내용 TOP NEW
beta 및 RC 이후 추가된 내용 1. 데코레이터 위치 변경 허용 TypeScript 5.0에서는 데코레이터가 export와 export default 앞뒤에 위치할 수 있도록 허용합니다. 이 변경 사항은 ECMAScript / JavaScript 표준을 관리하는 TC39에서의 논의와 합의를 반영한 것입니다. 2. 새로운 번들러 모듈 해석 옵션 변경 새로운 번들러 모듈 해석 옵션은 이제 --module 옵션이 esnext로 설정된 경우에만 사용할 수 있습니다. 이는 입력 파일에서 작성된 import 문이 번들러가 해석하기 전에 require 호출로 변환되지 않도록 하기 위한 것이며, 번들러나 로더가 T... Read More
-
WAS, Web Server, Nest JS TOP NEW
결론 ‘상황에 따라 변하는 정보를 제공할 수 있는가?’ TEMOK Web Server ? 웹 서버는 HTTP Protocol을 처리합니다. HTTP 요청이 Web Server(이하 WS)에서 우신될 때마다 HTTP 응답을 반환합니다. WS는 요청에 대한 응답으로 정적(Static) HTTP page 또는 image를 제공합니다. * Static page의 경우 (WS)에 미리 저장된 파일(HTML, CSS, JS, Image)등 을 불러와 구성하는 페이지 요청이 WS로 정송되면 응답 자체를 생성하는 대신 추가 처리를 위해 다른 프로그램 ( 여기서는 File System Datab... Read More
-
Unity LifeCycle TOP NEW
-
Parameter-Argument TOP NEW
-
Dependency Injection TOP NEW
DI DI 원칙 상위 모듈은 하위 모듈에서 어떠한 것도 가져오지 않아야 한다. 둘 다 추상화에 의존해야 하며, 이때 추상화는 세부사항에 의존하지 말아야 한다. 의존성 주입과 의존관계역전원칙 의존성주입이란 메인모듈이 ‘직접’ 다른 ‘하위 모듈’ 에 대한 의존성을 주기보다는 중간에 DI가 이부분을 가로채 메인 모듈이 ‘간접적’ 으로 의존성을 주입하는 방식 의존한다? A가 B에 의존한다. => B가 변하면 A가 영향을 미치는 관계 A -> B NEST JS에서의 의존성 주입 CODE class Animal{ private cat: Cat; getCryin... Read More
-
MSA TOP NEW
MicroService Architecture Monolithic & Micro 모놀릭 서비스 아키텍처 (Monolithic Service Architecture) 모든 비지니스 로직이 App 안에 포함되어 있는 시스템 구조 마이크로 서비스 아키텍처 (Micro Service Architecture) 각각의 비지니스 로직이 분할되어 각자 실행되는 시스템 구조 API Gateway 를 이용한 서비스 외부 노출을 방지하는 MSA 🎛️ MSA란 서비스를 비지니스 경계에 맞게 세분화하고, 서비스 간 통신은 네트워크 호출을 통해 진행하여, 확장가능하며 회복적이며 유연한 어플리케이션을 ... Read More
-
Indexing TOP NEW
INDEXING 1. 인덱스(Index)는 데이터베이스 분야에 있어서 테이블에 대한 동작의 속도를 높여주는 자료 구조를 일컫는다. 2. 인덱스는 테이블 내의 1개의 컬럼, 혹은 여러 개의 컬럼을 이용하여 생성될 수 있다. 3. 고속의 검색 동작뿐만 아니라 레코드 접근과 관련 효율적인 순서 매김 동작에 대한 기초를 제공한다. 4. 인덱스를 저장하는 데 필요한 디스크 공간은 보통 테이블을 저장하는 데 필요한 디스크 공간보다 작다. - (왜냐하면 보통 인덱스는 키-필드만 갖고 있고, 테이블의 다른 세부 항목들은 갖고 있지 않기 때문이다.) - ### 5. 관계형 데이터베이스에서는 인덱스는 테이블 부분에 대한... Read More
-
정규화 TOP NEW
Regularization 정규화는 모델이 훈련 데이터의 잡음을 학습하고 보이지 않는 데이터에서 성능이 저하될 때 발생하는 과적합을 방지하기 위해 기계 학습에 사용되는 기술입니다. overfitting 과적합(overfitting)은 훈련 데이터에 너무 잘 맞는 복잡한 모델로 이어질 수 있지만 새로운 예제로 일반화되지는 못합니다. underfitting 이 문제를 해결하기 위해 정규화는 손실 함수에 페널티 항을 추가하여 모델이 단일 기능에 너무 많은 중요성을 할당하거나 너무 복잡해지는 것을 방지합니다. 가장 일반적인 두 가지 정규화 방법은 L1(Lasso) 및 L2(Ridge) 정규화입니다... Read More
-
트랜잭션 TOP NEW
통칭 - ACID Atomicity 원자성 트랜잭션이 완전히 완료되거나 전혀 실행되지 않도록 함 트랜잭션 작업이 실패하면 전체 트랜잭션이 롤백 장애가 발생하더라도 DB가 일관된 상태를 유지하도록 보장 ex) 계좌이체실패시 잔액 증발 방지 Consistency (일관성) DB를 하나의 유효한 상태에서 다른 상태로 변환하도록 함 DB가 트랜잭션 전후의 모든 사전 정의된 규칙, 제약 조건 및 불변성을 준수하도록 보장 DB는 제약조건에 변경되지 않은 상태로 유지 ex) 계좌이체 실패 후 모든계좌에 잔액 합계 유지 — Isolation (고립성, 격리성) ... Read More
-
배열과 링크드리스트 TOP NEW
메모리할당/성능/사용편의성 기반으로 비교 배열 : 연속 메모리, 느린 액세스, 고정 크기 링크드리스트 : 비연속적 메모리, 느린 액세스, 동적 크기 메모리할당 배열 : ‘고정된 메모리 할당구조’ => 배열을 만드는 동안 메모리가(Stack Section) 한번(Compile time)에 할당됨 [Static Memory Allocation] 장점 : 인덱스별 요소에 효율적인 액세스가 가능해짐 단점 : 전체 배열을 메모리의 새 위치로 복사해야하는 배열크기조절시 문제가 발생 링크드리스트 : ‘동적 크기의 메모리 할당구조’ => 새로운 Node 가 추가될(heap Section) 때 (Run ... Read More
-
시간복잡도와 공간복잡도 TOP NEW
-
스택 그리고 큐 TOP NEW
-
Postgresql HA(이중화 및 고가용성) && auto Failover TOP NEW
CENTOS 7.6 / Postgresql -14.7 기준 공통 (Master, Slave1, Slave2) 만약 password 과련 error 발생시 PGPASSWORD=비밀번호 를 명령 앞에 같이 적어주길 바람 repmgr 설치 sudo yum install -y repmgr_14.x86_64 repmgr_14-devel.x86_64 symbolic link 생성 원하지 않는다면 안해줘도 되지만 커맨드를 실행할 때 /usr/pgsql-14/bin/repmgr 를 입력하면서 해주어야 한다. ln -s /usr/pgsql-14/bin/repmgr /usr/bin/repmgr ... Read More
-
PG_POOL II INSTALL & HA & WATCH DOG TOP NEW
CentOS 7 sudo yum install -y dnf dnf install -y pgpool-II cp /etc/pgpool-II/pgpool.conf.sample /etc/pgpool-II/pgpool.conf cp /etc/pgpool-II/pool_hba.conf.sample /etc/pgpool-II/pool/conf vim /etc/pgpool-II/pgpool.conf listen_addresses = '*' # 1번 DB backend_hostname0 = '호스트 1 아이피' backend_port0 = 5432 backend_weight0 = 1 backend_data_di... Read More
-
nGrinder TOP NEW
참고 URL HomeBrew로 자바 설치하기 nGrinder란 무엇인가? nGrinder githup nGrinder란? 설치 및 부하테스트 해보기 nGrinder 네이버에서 오픈소스로 공개된 Java Net-Work Test Tool 아파치에 기본 포함되어있는 툴로 서버의 스트레스를 주어서 얼마나 많은 트래픽을 견디는지 산출할 때 사용 nGrinder의 경우는 단순히 경로 하나를 스트레스를 주는 것이 아니라, nGrinder 가 지원하는 언어 Groovy, Jython 으로 시나리오를 작성하여 부하를 줄수 있는 장점이 있다. Error Error1. OpenJDK 6... Read More
-
Ubuntu nGrinder Agent Install TOP NEW
Instance Create Public IP Create ssh Access 인증키 (.pem) 으로 관리자 비밀번호 확인 ssh 접속 $ ssh -i [path/key] root@public_IP $ ssh -i /Users/daniel/Desktop/Key/Naver_Agent.pem root@101.101.218.92 password 입력 관리자 비밀번호 입력 apt update $ sudo apt update JAVA Install $ apt install openjdk-11-jre-headless 관리자 password 변경 $ passwd $ ... Read More
-
Naver Cloud postgresql 14 Install TOP NEW
CentOS 7.8 postgresql 14 Install 제작한 Custom Package sudo wget https://github.com/jhoon8903/packageRepo/raw/main/db-packages-1.1-1.el7.x86_64.rpm sudo yum install -y db-packages-1.1-1.el7.x86_64.rpm sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm sudo yum update -y s... Read More
-
rpm Package 생성 TOP NEW
CentOS 기준 sudo yum install -y rpm-build rpmdevtools rpmdev-setuptree cd ~/rpmbuild nano SPECS/my-packages.spec Name: db-packages Version: 1.1 Release: 1%{?dist} Summary: Custom package for installing multiple packages License: GPL %description This package install multiple packages with a single command. database set postgresql14 and mon... Read More
-
Test 트러블슈팅 TOP NEW
ENV 테스트 시나리오 : Test 인스턴스 별 Target 인스턴스 Static File Lode TEST Static File Size : 180Byte 목표값 설정 1) Latency : 1500ms 이상은 서비스 이탈자를 높힘 (체감적으로 느리다고 판단되는 시간) a) Latency : 모든 지표가 500ms 이하 a-1) MAX 부하시 : 1000ms 이하 ### 2) Throughtput DAU = 100,000 피크 AU = 70,000 avg.Access - 1User = 20회 (피크 3배) rps = 약 210 ~ 300 rps 이상 [100,000 * 20 / 86,4... Read More
-
Load Test 준비 TOP NEW
1. 일정 고려대상이 아님 - 누군가와 협업하는게 아니기 때문 2. 부하 테스트 목적 1) 여러 케이스들로 응답성능 예측 2) 부하가 발생하면 해다 성능 개선 3) AWS 시스템 확장성 확인 4) AWS 시스템의 특성을 확인 3. 전제조건 1) 테스트 대상 시스템 범위 : Test Tool > Load Balance > Web Server > Data Base 2) 테이터 양 a) 사용자 정보 : 200,000 b) 상품 데이터 : 10,000 c) 사용 기간 : 시간 당 00 회 d) 사용자 패턴 로그인 > 전체조회페이지 접속 &... Read More
-
PDCA TOP NEW
-
5. Components and Props TOP NEW
React = Component-Based React Components Props (Property) Component 의 속성 컴포넌트에 전달할 다양한 정보를 담고 있는 자바스크립트 객체 Props 특징 Read-Only 읽을 수 만 있다 = 값을 변경할 수 없다. 붕어빵이 다 구워진 이후, 속재료를 바꿀 수 없다. 새로운 값을 컴포넌트에 전달하여 새로 Element를 생성 모든 리액트 컴포넌트를 Props 를 직접 바꿀 수 없고, 같은 Props에 대해서는 항상 같은 결과를 보여줄 것 Component 만들기 및 랜더링 Function Co... Read More
-
4. Rendering Elements TOP NEW
Elements 리액트 빌딩 블록중 가장 작은 단위 Elements는 화면에서 보이는 것들을 기술 리액트 Elements는 JS 객체 형태로 존재 (불변성) { type: Button, props: { color: 'green', children: 'Hello, elements' } } React Elements 의 특징 React elements are immutable (불변성) Elements 생성후 에는 children 이나 attributes를 바꿀 수 없다. Elements Rendering Root DOM... Read More
-
3. JSX TOP NEW
JSX A syntax extension to JavaScript JavaScript + XML/HTML JSX code const element = <h1>Hello, world</h1> JSX code > JS code React.createElemtnt( type, /// 타입 [props], /// 속성 [...children] /// 현재 element 가 포함된 자식 element ) JSX를 사용한 코드1 class Hello extends React.Component { render() { return <div>Hello ... Read More
-
2. React TOP NEW
-
1. html_SPA TOP NEW
-
10. Docker Image 생성 TOP NEW
[[#도커 이미지 생성 순서]] [[#Docker File 만들기]] [[#Dockerfile로 DockerImage 만들기]] [[#임시 컨테이서 생성 후 삭제하는 과정]] [[#도커 이미지 이름 부여하여 생성하기]] 도커 이미지 생성 순서 docker file 이란 - 도커 이미지를 만들기 위한 설정 파일 - 컨테이너가 어떻게 행동해야 하는지에 대한 설정을 정의하는 곳 ps. 도커 이미지가 필요한 것이 무엇인지를 생각하기 1. 베이스 이미지를 명시 - 파일 스냅샷에 해당 ### 2. 추가적으로 필요한 파일을 다운 받기 위한 몇 가지 명령어를 명시 - 파일 스냅샷에 해당 ###... Read More
-
9. docker shell 환경 진입 TOP NEW
-
8. Docker Redis TOP NEW
-
7. Docker Commands TOP NEW
도커의 명령어를 사용하려면 도커 이미지 안에 해당 명령어를 수행할 수 있는 파일이 있어야 한다. Alpine 이라는 이미지를 실행 하면서 ls 명령러를 사용해서 파일 리스트 보기 hello-world 를 똑같이 실행해보기 실행중 컨테이너 확인 $ docker ps ping 실행 후 ‘CONTAINER ID’ : 컨테이너 고유 ID ‘IMAGE’ : 사용되는 도커 이미지 ‘COMMAND’ : 실행될 실행된 명령어 ‘CREATED’ : 컨테이너가 생성된 시간 ‘STATUS’ : 컨테이너의 상태 (실행중 : UP) / (종료 : Exited) / (일시정지 : Pause) ... Read More
-
6. C group - Name Space TOP NEW
-
5. Docker Image to Container TOP NEW
Image 이미지는 App을 실행하는데 필요한 모든 것을 포함하고 있다. 필요한 것 컨테이너가 시작될 때 실행되는 명령어 $ docker run hello-world 파일 스냅샷 컨테이너가 hello-world를 실행시키고 싶다면, hello-world file(카카오톡을 실행하는데 필요한) 스냅샷 스냅샷 : 디렉터리나 피일을 카피한 것 — 이미지로 컨테이너를 만드는 순서 1. Docker Client에 $ docker run - $ docker run hello-world #### 2. 도커이미지에 이쓴 파일 스냅샷을 컨테이너 하드 디스크에 옮겨 준다. - 진짜 dra... Read More
-
4. Docker Theory TOP NEW
Docker || VM 공통점 Docker Container 와 Virtual Machine은 기본 하드웨어에서 격리된 환경 내에 애플리케이션을 배치하는 방법 차이점 격리된 환경을 얼마나 격리를 시키는지의 차이 Docker Container 도커 컨테이너에서 돌아가는 애플리케이션은 컨테이너가 제공하는 격리 기능 내부에 샌드박스가 있지만, 여전히 같은 호스트의 다른 컨테이너와 동일한 커널을 공유한다. 결과적으로, 컨테이너 내부에서 실행되는 프로세스는 호스트 시스템에서 볼 수 있다. 예를 들어, 도커와 함께 몽고DB 컨테이너를 시작하면 호스트(도커가 아님)의 일반 쉘에 ps-e grep ... Read More
-
3. Docker Use TOP NEW
Docker flow Docker CLI command $ docker run hello-world Flow 도커 클라이언트에 다가 커맨드를 입력하니 클라이언트에서 도커 서버로 요청을 보냄 서버에서 hello-world라는 이미지가 이미 로컬에 cache가 되어 있는지 확인 현재는 없기에 Unable to find image ~라는 문구가 2번째 줄에 표시 그러면 Docker Hub이라는 이미지가 저장되어 있는 곳에 가서 그 이미지를 가져오고 로컬에 Cache로 보관한다. 그 후 이제는 이미지가 있으니 그 이미지를 이용해서 컨테이너를 생성한다. 그리고 이미지로 생성 된 컨테이너... Read More
-
2. Docker를 알아보자 TOP NEW
DOCKER 🐳 컨테이너를 사용하여 응용프로그램을 더 쉽게 만들고 배포하고 실행 할 수 있도록 설계된 Tool 컨테이너 기반의 오픈소스 가상화 플랫폼 생태계 #Docker Container 정의 컨테이너는 코드와 모든 종속성을 패키지화하여 응용 프로그램이 한 컴퓨팅 환경에서 다른 컴퓨팅 환경으로 빠르고 안정적으로 실행되도록 하는 소프트웨어의 표준 단위다. => 간단하고 편리하게 프로그램을 실행시켜주는 것으로 정의 Container Image 컨테이너 이미지는 코드, 런타임, 시스템 도구, 시스템 라이브러리 및 설정과 같은 응용 프로그램을 실행하는 데 필요한 모든 것을 포함하는 가볍고 독립적... Read More
-
1. Docker TOP NEW
-
NEST JS 트러블슈팅 2 TOP NEW
🚨 트러블은 아닌데 dto에서 이미 검증을 하였는데 컨트롤에서 validationpipe를 넣는 이유는 뭘까 import { IsNotEmpty, IsString, Matches, MaxLength, MinLength } from 'class-validator' export class AuthCredentialDto { @IsNotEmpty({message : '빈 값은 안되요'}) @IsString({message : '문자열만 올 수 있어요'}) @MinLength(4,{message : '4자 이상이어야 해요'}) @MaxLength(10,{message:'10자 미만만 가능해요'}) username :... Read More
-
NEST JS 트러블 슈팅1 TOP NEW
🚨 typeorm 0.3 버전 이후로 없어진 EntityRepository …. 강의를 따라 기초 nestjs 공부중 첫번째 트러블에 봉착… EntityRepository 라는게 deprecated 라고 한다.. 강의에서는 잘 되던데… ‘Entity Repository’는 더 이상 사용되지 않습니다. ….사용 되지 않습니다…. 이제 막 시작한 사람에게 사용되지 않는다고 하면,,, 검색을 시작하니 나만 겪는 문제가 아니었다. 참조 블로그 - 테크놀리지넥 해당글을 읽어도, 다이나믹 모듈, 메타데이터, 데코레이터 제작 패턴 등등….. 1도 모르겠는 개념들이 나를 반긴다. 눈치는 있어 코드를 보고 어... Read More
-
Kakao passport Login 트러블슈팅 TOP NEW
Kakao Passport Social Login Passport를 이용한 Social Login 상황에서 토큰과 유저 정보가 Client로 전달 되다 페이지가 전환되면서 사라지는 문제 OAuth2.0의 3-legged-auth 방식 중 Authorization Code Grant 방식에서 Client에서 유저가 인가코드(Authorization Code)를 서버로 전달하여 해당 코드를 바탕으로 Resource Server에 전달하여, 인증 및 인가를 통해 Token을 받아와서 이것을 다시 Client로 전달 해주어야 하지만, 현재 프로세스에서는 로그인 성공 후 Redirect되는 페이지에서 URI가 ... Read More
-
Nest JS Bulid heap memory 이슈 TOP NEW
t2.micro 에서 Nest JS build 실패 Nest Js 에서 빌드 중 - heap limit Allocation failed - Javascript heap out of memory 문제 발생. Cloud watch로 확인하니 리소스 사용률이 천장을 찍고 있는 상황 free -h 로 확인하였을때 빌드 중 급격히 감소하는 가용 메모리양이 확인 됨 TS > JS 컴파일 과정 및 JS를 Interpretor 하는 과정에서 인스턴스의 가용 Heap 메모리 부족으로 빌드 실패한다고 판단. 조치사항 : Instance Memory Swap EC2 S... Read More
-
협업 미니 프로젝트 3(비슷한그램) TOP NEW
비슷한 그램 로고 (디자인 및 작명 : 이정훈) 뭐 대충 비슷하구만그램 📆 프로젝트 기간 2023년 1월 25일 ~ 2023년 2월 1일 (총 8일) 📡 배포 링크 : swagger : http://f1rstweb.shop/api-docs 📑 기타 문서자료 Team Docs https://www.notion.so/1-SA-620a7e58d59d4c4191c13ea7e3376eb3 Team S.A https://docs.google.com/spreadsheets/d/1o0KZFJbYMaSiaGpebJlZ4heZ-mw8d7ah_8dA_QCiORA/edit#gid=500988334 ... Read More
-
Nest JS Controller TOP NEW
Nest Js Official_Doc 목적 : Application 에 대한 특정 Request를 수신 하는 것 controller의 생성 : 기본 컨트롤러를 만들기 위해서는 ‘class’ && ‘decorators’ 가 필요함 decorators는 class를 필수 데이터와 연결하고 라우팅맵을 생성할 수 있도록 도와줌 Get 요청 Controller 예제 import {Controller, Get} from '@nestjs/common' @Controller('cats') export class CatsController { Get() findAll() : string { ... Read More
-
내가 그린 기린 그림 트러블슈팅 TOP NEW
미니프로젝트 진행 디자인 차수지FE 🧾 기획 : 내가 그린 그림을 문제로 내어 다른 사용자들이 맞추는 미니 캐쥬얼 게임 🎞️ 배포링크 : https://youtu.be/FEHbzJljdP0 ⏱️ 개발 기간 : 23년 1월 13일 ~ 1월 20일 (8일) 🛠️ 개발 스텍 : Node Js 📦 패키지 (pakeage.json) - aws-sdk : 아마존 AWS 인증 보안 관련 - bcrypt : 비밀번호 암호화 - cookie-parser : 쿠키 파싱 - cors : 프론트와 통신중 cors 문제 해결 - dotenv : 민감정보에 대한 환경변수 설정 - express : node express ... Read More
-
SQL Query TOP NEW
SQL 이란 DB system 에서 data를 처리하는 용도로 사용되는 '구조적 질의 언어' - Structured Query Language Query 란? DB로 부터 정보를 요청 하는 것 우리는 DB에서 데이터를 요청하기 위해 SQL이라는 언어를 배우는 것 Query 는 언어가 아니다. SQL 언어 장점 사용자가 이해하기 쉬운 단어 구성 쉽게 배울 수 있다. 복잡한 로직을 간단하게 작성 할 수 있다. ANSI에 의해 문법이 표준화 되어있다. ? ANSI : 미국표준협회 단점 하나의 문장으로 여러개의 행을 동시 입력이 불가능하여 여러개의 동일한... Read More
-
MySQL 통계 응용 TOP NEW
WHERE / GROUP BY / ORDER BY 혼합 사용 ‘웹개발 종합반’의 결제수단별, 주문건수 ELECT course_title, payment_method, COUNT(payment_method) FROM orders WHERE course_title = ‘웹개발 종합반’ GROUP BY payment_method ORDER BY payment_method Gamail 을 사용하는 성씨별 회원수 SELECT name, email, COUNT(name) FROM users WHERE email like ‘%gmail.com’ GROUP BY name ... Read More
-
MySQL 통계 ORDER BY TOP NEW
-
MySQL 통계 GROUP BY TOP NEW
-
MySQL 기초문법 TOP NEW
Select Query 문 *어떤 Table에서 어떤 Field 의 data를 가져올지 *로 구성 됨 구성 Execl sheet 를 생각하면 편하다. 기초 문법 SELECT 문 - 기본적인 data 조회할 때 사용 특정 Table안의 모든 Field 조회 SELECT * from tableName 특정 Table안의 특정 Field 조회 SELECT fieldName form tableName SELECT fieldName1 , fieldName2 from tableName Where 절 - 특정 table안의 특정 data 조회 - 텍스트상 구분 짓기위해 ( ) 표시 실제... Read More
-
MySQL 기초문법 활용(삽질) TOP NEW
I. 성이 남씨인 유저의 이메일만 추출하기 SELECT email FROM users WHERE name = ‘남**’ II. Gamil 유저중 2020/07/12 ~ 13에 입력된 data 추출하기 SELECT * FROM users WHERE email LIKE ‘%gmail.com’ and created_at BETWEEN ‘2020-07-12 00:00:00’ and ‘2020-07-13 23:59:59’ III. Gamil 유저중 2020/07/12 ~ 13에 입력된 data의 Count 하기 SELECT COUNT(*) FROM users WHERE email LIKE ... Read More
-
MySQL 기초 응용 문법 TOP NEW
-
MySQL JOIN TOP NEW
JOIN ( 여러 TABLE을 연결 ) 두 Table의 공통된 정보 (key value)를 기준으로 [한 Table]처럼 보는 것 ex) user_id Field 기준으로 user 와 orders Table을 연결해서 한눈에 보는 것 종류 LEFT JOIN ![300](https://i.imgur.com/1grDrJl.png) SELECT * FROM users u LEFT JOIN point_users p ON u.user_id = p.user_id LNNER JOIN SELECT * FROM users u... Read More
-
내가그린기린그림 기획 TOP NEW
내가 🖍️그린 🦒기린 그림 내가 그린 기린 그림이 무슨 기린그림인지 알겠니? 작성자 그려서 업로드한 이미지를 사용자들이 맞추는 그림 퀴즈 놀이 📆 프로젝트 기간 2023년 1월 13일 ~ 2023년 1월 20일 (총 8일) 📡 배포 링크 : 🖼️ 와이어 프레임 🧰 기술 스택 프론트엔드: Bootstrap, Javascript 백엔드: node.js, express.js, socket.io, 도구: Git, excalidraw, drawSQL, Google Docs 배포 : AWS EC2 🧑🏻💻 개발환경 IDE: VSC 개발 언어: Javascript 형상관리: ... Read More
-
Vaildation (검증) TOP NEW
function is1(value) { return value === 1; } joi 라이브러리 검증 toHexString ? mongoose ‘Schema.virtual’ ? 3T 에서 조회한 모습 JSON Type로 mongoose에서 보았을 때 todoId 라는 가상의(virtual) Column을 보여준다 deleteOne(todoId) router.delete(‘/todos/:_id’, async (req, res) => { const { _id } = req.params; const deleteTodo = await Todo.deleteOne({ _id }) .exec() ... Read More
-
에러 핸들링 TOP NEW
에러 핸들링 (Error handling) - 에러를 관리하는 방법 - 에상가능 에러와 불가능 에러로 구분, 일반적으로 예상치 못한 에러 발생률이 높다. try / catch - 서버에러를 방지하고자 예외처리를 진행하는 방법 - 일반적으로 try ... catch문 작성 <img src = 'https://user-images.githubusercontent.com/114923190/209467407-a534e251-164b-4985-bbf7-510620624e5a.png' width = '500'> throw - 고의로 error를 발생시키는 방법 - throw를 호출하면 그 즉시 현재 실행되고... Read More
-
게시판 서버 만들기 2 TOP NEW
“이 기능 있으면 좋을 것 같아요”… 기능의 구현이 끝나고 나서 들은 의견, 게시판 POST Request를 하면서, 자동으로 게시글의 넘버가 생성되어 기록 되었으면 좋겠다. 그렇게 시작 된 게시글 번호 자동생성. 먼저 해당 기능을 구현하기 위한 모듈 혹은 라이브러리가 있는지 확인했다. 다행히 mongoode-auto-increment 모듈이 있어 손쉽게 자동 카운트 되는 데이터를 만들 수 있다고 한다. 먼저 해당 모듈을 npm 설치 후 import && require 코드를 만들어 주고, 내부에 중복데이터로 변한 postsId 값도 변형시켜주었다, 내 기능에 맞도록 이리저리 변수명을 수... Read More
-
게시판 서버 만들기 1 TOP NEW
게시판 기능 구현 처음 강의가 끝나고 게시판 과제 진행하면서 하루를 꼬박 들였는데 오류수정하다보니 이리저리 꼬여서 여기 수정하면 저기서 말썽, 저기 수정하면 여기서 말썽 ‘내가 이해를 못하고 진행하는거라서 안되나 보다’ ‘제가 지금 크게 무언가 공부를 잘못하고 있는 것 같다. 코드창만 앞에 두면 어디서 부터 시작해야 할 지 모르겠다.’ 라고 상담을 하고, 매니져분께서 “프로젝트 흐름을 정리 한것 보면 이론은 있는데 코드작성이 아직 숙달이 안되서 그러신 것 같으니 일단 써봐라”라고….. 그래서 그냥 썻다… First step. API 그리고 프로젝트의 흐름 파악 Second step. 코드 작성 시작은 주석으... Read More
-
Domain 에서 EC2 까지 TOP NEW
-
Sequelize TOP NEW
ORM (Object Relational Mapping) VS ODM (Object Document Mapping) ORM : 코드의 객체 (object)와 데이터의 관계형 표현간에 변환(Mapping)이 가능 ODM : 코드의 객체와 데이터 문서(Document)의 변환(Mapping) 가능 What Is ORM 객체를 통해 간접적으로 DB를 다루는 방식 - 직접 SQL Query를 작성하지 않고 프로그래밍 언어를 이용하여 DB에 접근이 가능 - ORM을 이용해서 객체 간의 관계를 바탕으로 SQL을 자동으로 생성하여 불일치를 해결한다. - ORM을 이용해서 SQL 문을 직접... Read More
-
RDBM Associate TOP NEW
-
Mongoose server 11000 Error TOP NEW
ERROR message 게시판 post 요청시 error 메세지 출력 Code 11000 keyPattern : { postId: 1 } keyValue : {postId : null} - 메세지 해석 : 서버에 중복된 값(postId : 1)이 있어 해당 요청을 받을 수 없고, keyValue 값이 비어있다. 처음 postId 라는 변수를 넣고 개발을 진행하던 중 동료의 피드백으로 해당 변수가 필요가 없다는 것을 알고 해당변수를 삭제 (비활성화:/주석처리) 하고 post 호출을 진행하면 해당 메세지가 계속 나오고 있었다. [./routes/posts.js] - 해당 라우터 코드에서 기존에 있던 po... Read More
-
DB 모델링 TOP NEW
-
MongoDB > mongoose TOP NEW
데이터베이스와 MongoDB 데이터베이스 단순히 데이터를 잘 저장하고 잘 찾기 위해 만들어진 Sofrware ‘Database Management System(DBMS)’ DBMS가 설치 된 곳이 DB server DB Server 의 모든 data 는 DBMS가 관리 종류 관계형 데이터베이스 (Relational Database (RDB)) 데이터의 형식이 정해짐 데이터끼리 관계를 맺어 모순이 없는 데이터를 유지 ‘모순이 없는 데이터’ = 무결성과 정합성이 높은 데이터 비관계형 테이터베이스 (Non - relational Datab... Read More
-
CORS TOP NEW
교차 출처 리소스 공유 ( CORS ) Cross- Origin Resource Sharing HTTP 헤더를 사용하여, ‘ 한 출처 (SOP)’에서 실행 중인 웹 어플리케이션이 다른 출처의 선택한 자원에 ‘접근할 수 있는 권한’을 부여하도록 ‘브라우저’에 알리는 체제 웹 어플리케이션은 리소스가 자신의 출처 (도메인 , 프로토콜 , 포트 )와 다를 때 출처 HTTP 요청(CORS)을 실행 교차 출처 요처의 예시 : https://domain-a.com의 프론트 엔드 JavaScript 코드가 XMLHttpRequest를 사용하여 https://domain-b.com/data.json을 요청하는 경우. ... Read More
-
TCP와 UDP TOP NEW
OSI 7 전송 프로토콜을 계층으로 표현 (국제 ISO 표준 규격) 1 ~ 7 계층으로 이루어져 있음 1 ~ 4 하위계층 / 5 ~ 7 상위계층 상위계층으로 갈수록 소프트웨어어 가까워짐 하위계층은 하드웨어에 가까워짐 상위계층은 하위계층의 기능을 이어받아 사용 [제 1계층] 물리 계층(Physical Layer) 시스템의 물리적 전기적 표현을 나타내는 계층 케이블 종류, 무선 주파수 링크, 핀, 전압 등의 물리적인 요건을 의미합니다. 라우터나 스위치의 전원이 켜져있는지, 케이블이 제대로 연결되어있는지 여부 등에 모두 1계층인 물리 계층에 해당되는 이야기입니다. [제 2계층]... Read More
-
Req, Res TOP NEW
Request 와 Response 1) Req / Res - Request란 클라이언트가 서버에 전달하려는 정보나 메시지는 담는 객체 - Response란 서버에서 클라이언트로 응답메시지를 전송하는 객체 2) Server Module - Node.JS의 서버모듈에는 http / Express 모듈이 존재 - Express 모듈은 http 모듈 및 추가 제공하는 모듈을 사용가능 3) Express 모듈의 req / res ### req 객체 - req.app : req 객체를 통해 app 객체에 접근 - req.ip : Client ip 주소가 담겨 있음 * - req.body : Request 호출할 ... Read More
-
Routing / Route TOP NEW
Routing Routing은 클라이언트의 요청 조건(메서드, 주소 등)에 대응해 응답하는 방식 Router Router는 Client의 요처을 쉽게 처리 할 수 있게 도와주는 Express.js 기본 기능중 하나 라우터 구조 - router.MERHOD(PATH, HANDLER); - router : express의 라우터 정의 - METHOD : HTTP Method (get, post, put, delete...) - PATH : 실제 서버에서 API를 사용하기 위한 경로 - HANDLER : 라우트가 일치할 때 실행되는 함수 미들웨어 (Middleware) 웹 서버에서 요청을 받을때 모든 ... Read More
-
REST API 개발 TOP NEW
Express.js 는 무엇 때문에 사용하는가. Express.js는 Node.js로 서버를 빠르고 간편하게 만들 수 있게 도와주는 웹 프레임워크 라이브러리 ? 웹 프레임워크? Framework Software : 'softawre 특정 문제를 해결하기 위해서 상호 협력하는 클래스와 인터페이스의 집합' - 완성된 Application이 아닌 완성시켜나가야 하는 작업이 필요 #### 특징 - 특정 개념들의 추상화를 제공하는 여러 Class / Component 로 구성 됨 - 추상적 개념들이 문제를 해결하기 위해 같이 작업하는 방법을 정의 - Component 재사용 가능 - 높은 수준에서 패턴... Read More
-
REST API (Resource) TOP NEW
Representational State Transfer URI를 통해 자원을 표시하고, HTTP Method를 이용하여 해당 자원의 행위를 규정하여 그 결과를 받는것이다 여기서 URI 란? URI || URL || URN URI : 자원의 식별자 URL : 자원을 위치 URN : 자원의 이름 URI (Uniform Resource Identifier) 통합 자원 식별자 - 통합 자원 식별자는 인터넷에 있는 자원을 어디에 있는지 '자원 자체를 식별하는 방법' + Unirorm : Resource를 식별하는 통일된 방식 + Resource : 자원 / URI로 식별 할 수 있는 모든 것 ... Read More
-
REST API TOP NEW
API 와 REST API의 개념 API (Application Programming Interface) - API는 App 끼리 연결시켜주는 매개체이자 약속 API작성 Front-end 에서 원하는 기능을 수행하는 URL과 인터페이스를 제공한다는 의미 API에서 원하는 데이터르 받아 DB에 저장하고, 저장되어 있는 데이터를 읽어서 Front-end에 제공하는 행위로 사용자가 원하는 목적을 이룰 수 있게 해야 함 REST API (RESTful API) Repersentational State Trensfer REST는 www와 같은 HTTP 시스템을 위한 소프트웨어 아키텍쳐의 한 형식 네트워크 표현수단... Read More
-
Express Middleware TOP NEW
Express의 Middleware express 자체가 자체적으로 최소한 Routing 및 Middleware 기능을 갖춘 WEB Framework req, res 이후 일반적으로 next라는 변수로 표시 각 미들웨어를 모듈화하면 각 각의 기능을 효율적으로 재사용 가능 종류 application middleware router middleware error handling middleware basic middleware third-party middleware Application middleware 어플리케이션 전역에서 처리 가능 - app에 대한 req발생할 때 마다 실... Read More
-
Module TOP NEW
Module Module (모듈) 이하 md - JS 파일단위로 분리 된 코드 (특정기능을 가진 함수와 변수의 집합) 1. Module은 하나의 md에서 다른 md를호출하여 사용가능 2. Md은 그 자체로 하나의 프로그램이면서 다른 부픔으로도 사용 가능 3. 보통 1개 파일이 1 MD <img src = 'https://user-images.githubusercontent.com/114923190/209467650-8400e1a4-58e1-414e-974d-9c103da1b643.png' width = '500'> Module은 왜 필요한가. 1. Code base를 분리할 수 있으며... Read More
-
Node JS & REPL TOP NEW
Node.js란? Chrome V8 JS엔진으로 빌드 된 JS런타임 이벤트 기반 논 블로킹 I/O 모델 npm open source library V8 Engine V8엔진은 구글에서 만들고 브라우저가 없이도 작동 할 수 있도록 만든것인데 이를 가지고 Node.js를 만들었다고 한다. 왜? Node.JS Node.JS 특성 Non-blocking / Single Thread / Event Loop Non-blocking : 함수실행 중에도 다른작업을 진행 할 수 잇게 함 - 기존 Blocking I/O (Input/Output)은 작업을 마칠때 까지 대기하는 방식으로 그걸 없... Read More
-
Npm TOP NEW
Package Manager - package를 손쉽게 다루는 작업을 편리하게 사용하기 위한 툴 - open source로 다운받거나 배포가능 - Node.JS 에서는 'npm' / 'yarn' 이 대표적 npm : Node Package Manager의 약자로 대표적 패키지 매니져 yarn : npm의 대체자로 Facebook이 출시한 패키지 매니져 * 두가지 중 하나만 선택해서 사용하는 것을 권장 (Error 방지) ### Package.json - 설치한 패키지의 버전관리를 위해 사용하는 파일 - 프로젝트명 / 작성자 / 라이센스 정보 등 다양한 meta data를 기록할 수 있음 <img src ... Read More
-
데이터의 종속성과 중복성 TOP NEW
데이터의 궁극적 목표는 데이터의 독립성 추구 독립성의 확보 : 데이터의 물리적, 논리적구조가 변경되어도 Application에 영향을 주지 않는 것 DBMS는 독립성을 유지하기 위해 Mapping 방식을 사용하여 물리적, 논리적 데이터의 독립성을 유지 - 대표적 DBMS RDBMS : mySQL NoSQL : MongoDB 독립성을 방해하는 요소 데이터의 종속성(Data dependency) / 중복성 (Data redundancy) 종속성 (Data dependency) - Application과 Data간의 상호의존관계 - Application은 Access 하려는 Data의 구성/접근 방법... Read More
-
JavaScript Class TOP NEW
클래스 ( Class ) - 객체를 나타내기 위한 도구 - 미리 정의 해놓으면 필요할 때마다 해당 클래스로 동일한 틀을 가진 객체를 만들 수 있음 * 동일한 클래스를 이용해 생성한 객체를 인스턴스 (Instance)라고 부른다. Class 예제 ES 6 이전 Class 가 없었을 때 (feat. Demacia) ES6 Class 등장 이후 메서드 (Method) JS에서는 사용할 수 있는 모드 값은 property 값으로 사용가능하며, Property 값이 함수(function)일 경우 구분하기 위해 'Method' 메서드라고 부른다. 여기서는 Class 객체에 묶여 있는 함수를 Method라고... Read More
-
프로세스와 스레드 TOP NEW
Process Process “Computer”에서 연속적으로 실행되고 있는 컴퓨터 프로그램” 메모리에 올라와 실행되고 있는 프로그램의 인스턴스(독립개체) OS로부터 리소스* 를 할당 받아 사용하는 작업단위 즉, “실행 된 프로그램” 리소스* : Code, Data, Stack, Heap Process들은 별도의 주소공간을 가지며, 각각의 Process는 다른 Proces는 다른 Process에 접근이 “불가” 접근하기 위해선 Process간의 통신(IPC)이 필요하다 IPC : Inter Process Communication => Pi... Read More
-
객체리터럴 TOP NEW
객체 (Object) JS 데이터 Type은 크게 원시타입 (Primitive type) || 객체타입 (Object type) 분류 됨 - 원시타입은 단 하나의 값 만을 나타내고, 변경이 불가능 한 값 - 객체타입은 다양한 타입의 값을 하나의 단위로 구성한 복합적 자료구조, 타입 값 변경 가능 JS는 객체(Object) 기반의 프로그래밍 언어이고, 모든 것은 객체로 구성되어 있음 객체는 0개 이상의 Property로 구성된 집합이며, 하나의 Property는 'Key' & 'Value'로 구성됨 객체 리터럴 리터럴(Literal)은 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 ... Read More
-
객체지향 TOP NEW
객체지향 프로그래밍 (Object Oriented Programming) OOP - OOP (Object Oriented Programming) 은 ‘Object’ 라는 ‘객체’ 개념을 사용하여, 소프트웨어를 설계하고, 구성하는 프로그래밍 패러다임 - 전통적인 ‘절차지향 프로그래밍(Procedural Programming)’ 에서 ‘객체지향 프로그래밍(Object Oriented Programming)’ 으로 변화함 - OOP는 실제세상에 가깝게 모델링하며, 객체간의 상호작용으로 표현합니다. - Classes 와 Objets의 집합으로 프로그램을 작성합니다. - 각 Object는 ‘Message’를 받고, 처... Read More
-
if 문 TOP NEW
조건문 Boolean 자료형을 활용한 true / false 활용문 비교연산자 && 일치연산자를 활용하여 조건문을 만들고, 분기를 정하는 방법 if 문 기본 문법 구조 if ( true || false ) { true || false 조건에 부합할 때 작동하는 CODE } else { (if 부분이 성립하지 않을 때) 실행되는 CODE => 조건은 따로 넣지 않는다. } 예문 if (String(originpassword) === String(password)) { /// 입력받은 passord가 기존의 passwrod와 일치하는지 (true) await Posts.... Read More
-
For Loop TOP NEW
for … in (ES1) for ... in 반복문은 object의 속성들을 반복하여 작업을 수행할 수 있는 문법 모든 object에서 사용이 가능하다. 즉, 객체 (이하 obj)의 자료들을 하나씩 꺼내고 싶을때 사용을 하게 되는 것 물론 for 문보다 간단하다. prototype에도 접근이 가능하다. for … of (ES6) 1. 배열의 반복 : 빠르게 코드를 작성 할 수 있으며 가독성이 좋다. 2. index와 item에 모두 접근 가능 (구조분해에 용이함) 3. Array 와 같은 반복 4. 문자열 문자반복 5. Map 및 Set 반복 가능 이외에도 객체반복, DOM C... Read More
-
HTTP의 이해 TOP NEW
HTTP 데이터를 주고 받은 양식을 정의한 '통신규약'중 하나가 'HTTP' 범용적으로 제일 널리 쓰이는 통신 규약 - 통신규약 : 컴퓨터끼리 데이터를 주고 받을때 정해둔 약속 ### HTTP 통신 Request / Response 개념이 존재 Server <=> Client 1. Cleant는 자신이 원하는 페이지를 요구(Request) 2. Server는 페이지가 있는지 확인하고, 있다면 해당 페이지를 반환(Response) 해준다. 3. Client는 전달받은 데이터를 기반으로 Browser에 그려준다. HTTP 구성요소 Method : 'GET' 리소스를 얻을 때 => ... Read More
-
Async-Await-2 TOP NEW
동기 (Synchronous) & 비동기(Asynchronous) ‘동기’로 실행된다 = 먼저 실행된 코드의 결과나 나올때까지 ‘대기’하는 것 ‘비동기’로 실행된다 = 실행된 순서와 관계 없이 결과가 나오는 것 Blocking Model && Non-Blocking Model - Blocking Model 이란, 코드의 실행이 끝나기 전까지 '실행 제어권을 다른곳에 넘지기 않아 다른 작업을 하지 못하고 대기' 하는것 을 말함 - Non_Blocking Model이란, 코드의 실행이 끝나지 않아도 '실행 제어권을 다른곳에 넘겨 다음 코드가 실행'될 수 있는 것을... Read More
-
호이스팅 TOP NEW
호이스팅은 코드 실행 전에 컴파일 단계에서 변수 및 함수 선언이 포함된 범위의 맨 위로 이동되는 JavaScript 메커니즘입니다. 즉, 변수와 함수는 이미 메모리에서 사용할 수 있으므로 코드에서 선언하기 전에 변수와 함수를 사용할 수 있습니다. 호이스팅은 무엇을 끌어올리느냐? 1. 변수 선언 2. 함수선언 호이스팅은 let 및 const로 선언된 변수 및 함수 표현식과 비교하여 var 및 함수 선언으로 선언된 변수에 다르게 적용된다는 점에 유의해야 합니다. var로 선언된 변수: 호이스팅이 발생하면 var를 사용한 변수 선언은 해당 범위의 맨 위에 undefined 값으로 초기화됩니다. 변수가 선언... Read More
-
var, let, const TOP NEW
변수 선언 선언 (declaration) => 초기화 (initialization) var var : 함수 범위, 변수가 정의된 함수와 모든 중첩 함수 내에서 액세스 가능, 함수 외부에서 선언되면 var 변수는 전역 범위를 갖음, 호이스팅 됨 코드 실행 전에 해당 범위의 맨 위로 이동되고 undefined 값으로 초기화 됨, 변수가 선언된 줄 전에 변수에 액세스 하려고하면 예기치 않은 동작이 발생할 수 있음 function exampleVar() { console.log(myVar); // Output: undefined var myVar = 'Hello'; console.lo... Read More
-
What is JavaScript TOP NEW
JavaScript 란? JavaScript (이하 JS) 이전은 HTML / CSS도 아주 간단한 스타일만 적용 가능한 정적인(static service) 웹 생태계였다. 문서를 웹으로 볼 수 있는 수준으로 이는 신문활자를 그냥 웹에서 보여주는 수준이라고한다. 자바스크립트의 탄생비화 JS는 [정적(Static) > 동적(Dynamic)] 으로 표현 할 수 있게 만들어 졌는데 시초는 Natscape라는 웹 브라우저를 통해 상호작용을 강조하기 위해 간단한 기능을 넣어 만든것이 JS의 시초였다. 웹 개발자들은 각자의 브라우져 생태계에 맞추어 모든 코드를 별도로 작성해야 했고 이를 위해 표준화 작업... Read More
-
JavaScript Promise TOP NEW
Promise ES5 > Call Back ES6 > Promise ES7 > async / await JavaScript Promise는 비동기 작업의 최종 완료(또는 실패)와 그 결과 값을 나타내는 객체입니다. 네트워크 요청, 파일 I/O 또는 시간 초과와 같은 비동기 작업을 기존 콜백 함수에 비해 보다 유연하고 간결한 방식으로 처리하는 방법입니다. ‘Promise’는 다음 세 가지 상태 중 하나입니다. panding: 초기 상태. 약속은 성취되거나 거부되지 않습니다. resolve: 작업이 성공적으로 완료 되었으며 약속에 결과 값이 있습니다. reject: 작업이 실패했으... Read More
-
Async-Await-1 TOP NEW
원문 : https://dev.to/lydiahallie/javascript-visualized-promises-async-await-5gke#syntax Async / Await Async / Await 실행 예문 const one = () => Promise.resolve('One!') async function myFunc() { console.log('In function!') const res = await one() console.log(res) } console.log('Before function!') myFunc(); console.log('After function') ... Read More
-
JavaScript Arrow function TOP NEW
화살표 함수는 ECMAScript 6(ES6)에서 도입된 JavaScript에서 함수 표현식을 생성하기 위한 간결하고 보다 현대적인 구문입니다. 화살표 함수는 더 짧은 구문을 제공하며 기존 함수 표현식과 비교하여 동작에 약간의 차이가 있습니다. 화살표 함수의 구문은 다음과 같습니다. (parameters) => expression 다음은 화살표 함수의 간단한 예입니다. const add = (a, b) => a + b; console.log(add(1, 2)); // Output: 3` 이 예에서 ‘add’는 두 개의 매개변수 ‘a’와 ‘b’를 사용하고 그 합계를 반환하는 화살표 함수입니다... Read More
-
JavaScript의 자료형 특성 TOP NEW
미니프로젝트를 진행하고 코드를 짜보면서 기초는 때고 다음단계로 넘어가겠구나 했는데 이게 왠걸,, javaScript책을 보고 강의를 들으면서 나는 진짜 JS에 1도 모르고 이썼구나 싶더라,,, 그냥 겉핥기식으로만 공부하는건 나중에 크게 문제가 될 것 같아 좀 더 깊게 파고들어야겠다. JavaScript의 자료형과 JavaScript만의 특성은 무엇일까? Loosely Typed의 Dynamic 언어 느슨한 타입 이란 ( What is th loosely Typed ? ) 느슨한 타입은 [타입 없이 변수 선언] 하는 것, < > 강력한 타입 (strong typed) javaScr... Read More
-
Python 풀스택 미니프로젝트 회고 TOP NEW
언제든 문제가 생길 수 있다. 5분전에 멀쩡하던 코드가 갑자기 아무 이유없이 박살나는 곳이 개발 세계 인것 같다. 분명 로컬환경에서 멀쩡하던 파일이 왜 웹에 업로드 되자마자 문제를 일으키는지…. 토큰값이 encoding & decoding 되는 과정에서 UTF-8 과 HS256 과정에서 문제가 발생 한 것 같다. @app.route('/login') def home(): token_receive = request.cookies.get('mytoken') try: payload = jwt.decode(token_receive, SECRET_KEY, algorithms=['HS256... Read More
-
Pyhton 풀스택 미니프로젝트 3 TOP NEW
프로젝트 API 맵 https://excalidraw.com/#json=e8qdVOyCAaL0pnCv8FnVZ,ydmlo92wEJcic6Y7k5unmw 프로젝트를 진행하면서 Flask를 활용한 API통신과 페이지 랜더링에 관해 도움 없이 정리 및 공부하는 느낌으로 진행 해보았다. 익숙하지않아 작성에는 많은 시간이 들었고, 아직도 해매고 있는 중이다. 프레임워크의 코드를 보면서 뭔지는 알것 같은데 선뜻 코드를 작성하지 못하였지만 맵을 작성하고 나니 내가 지금 무엇을 하는지에 대해 점점 명확해진다. 아직 풀리지 못한 내용은 다음과 같다. index의 포스트를 게시 후 해당 포스트를 눌었을때 어... Read More
-
Python 풀스택 미니프로젝트 2 TOP NEW
풀스택 미니프로젝트 주제 호텔 리뷰 사이트 구축 필수기능 pyJWT [HS256] 사용한 회원가입 및 로그인 기능 협업툴 git hup / sourcetree 팀원들 모두 협업툴의 처음 사용으로 시행착오를 겪는 중 팀장으로 public repository 을 생성하고 sourcetree를 활용하여 협업 진행 하려고 함 하지만 세팅의 문제인지 커밋 후 푸쉬하는 과정에서 무한로딩이 되었고, repository를 재생성 하여 문제를 해결하려 하였지만 실패하여 현재 git-hup에 이번 프로젝트 생성된 repo의 숫자가 6개이다…… 실무에서 협업툴은 필수이기에 ... Read More
-
Python 풀스택 미니프로젝트 1 TOP NEW
-
Python 미니프로젝트 3 TOP NEW
미니프로젝트 개선사항 무한정 쌓이는 DB Refresh Dark mode적용 모바일환경구현 1. DB refresh 문제 웹 새로고침시 db에 데이터가 계속해서 누적되는 문제발생 db의 return 속도 감소 / 과부하 발생으로 계속 refresh 하면 서버가 작동정지하는 문제 발생 2. DB refresh 문제해결 크롤링 data의 return 전에 db.var.delete_many({})를 삽입하여 db를 비워주고 새로운 data insert 실행 기존코드 for politic in politics: if politic != No... Read More
-
Flask mongodb data 삭제 TOP NEW
-
Python 미니프로젝트 2 TOP NEW
-
Python 미니프로젝트 TOP NEW
학습 이후 실제 팀원(3명) 구성 후 미니프로젝트 시작 Project : News 페이지 크롤링 업무 python requests, beautifulSoup 이용 Naver News기사 크롤링 Flask / temp_html 코드 작성 후 웹페이지 로딩 data = requests.get('https://news.naver.com/main/list.naver?mode=LS2D&mid=shm&sid1=102&sid2=254', headers=headers) soup = BeautifulSoup(data.text, 'html.parser'... Read More
-
Git Hub Blog 만들기 TOP NEW
Mac M1 Pro 기준 깃헙 레포지토리 생성 유저아이디.github.io 로컬 PC 에 git clone 루비 설치 brew install rbenv ruby version 확인 rbenv install --list # 23.03.29 기준 2.7.7 3.0.5 3.1.3 3.2.1 jruby-9.4.2.0 mruby-3.2.0 picoruby-3.0.0 truffleruby-22.3.1 truffleruby+graalvm-22.3.1 ruby 및 기타 패키지 설치 sudo rbenv install 3.2.1 sudo ge... Read More
-
Java '변수와 상수' TOP NEW
변수와 상수 변수 어떠한 데이터를 저장하기 위한 메모리 공간의 이름 지속적으로 변수의 값을 변경 할 수 있음 상수 중간에 값이 변할 수 없으며 초기값을 끝까지 사용해야 함 // java basic form // public class Main { public static void main(String[] args) { // code 작성 } } 변수와 상수 선언 변수 선언시 [접근제어자][변수의 자료형] [변수의 이름] 값도 함께 선언하고 싶을때 [변수의 자료형][변수의 이름] = [값] 변수 이름 붙이는 규칙 camlCase가 defacto s... Read More
-
javascript 배열 'Array' TOP NEW
배열 (array) 같은 타입의 테이터들을 하나의 변수에 할당하여 관리하기 위해 사용하는 데이터 타입 배열의 선언 new Array( ) / [ ] const arr1 = new Array(1,2,3,4,5) const arr2 = [1,2,3,4,5] 배열 안의 데이터 배열에 있는 데이터 각각을 ‘요소(element)’라 부름 배열에서는 ‘인덱스(index)’가 객체의 속성명과 같은 역할 index는 배열 안 데이터의 순서 (0 부터 시작) const rainbowColors = ['red', 'orange', 'yellow', 'green', 'blue', 'indi... Read More
-
Javascript 문법 '연산자' TOP NEW
연산자 +를 사용하여 문자열을 붙일 수 있다. consolr.log('My' + ' car') # My car console.log('1' + 2) # 12 템플릿 리터럴 (template Literals) 백틱(``)을 사용, 문자열데이터를 간결히 표현 가능. const shoesPrice = 20000 console.log(`이 신발의 가격은 ${shoesPrice}원 입니다.`) = console.log('이 신발의 가격은 ' + 'shoesPrice' + '원 입니다.') # 이 신발의 가격은 20000원 입니다. // + 를 활용한 붙이기보다 간결하게 표현 가능 산술연산자 (... Read More
-
javaScript 함수 TOP NEW
함수 함수란 특정 작업을 수행하는 코드의 ‘집합’ const priceA = 1000 const pricaB = 2000 const sum1 = priceA + pricaB console.log(`두 상품의 함계는 ${sum1}입니다.`) // 합 const avg1 = sum1 / 2 console.log(`두 상품의 평균 금액은 ${avg1}입니다.`) // 평균 // 위의 코드가 반복 된다면 사용 해야 하는게 함수 함수의 선언과 호출 함수의 선언 function 함수명_prameter (매개변수들) { 이 함수에서 실행할 코드 return 반환값 } function calcu... Read More
-
javaScript 문법 '조건문' TOP NEW
조건문 if boolean 값 if 구문을 만족했을 때만 코드를 실행 if (조건) {조건을 만족할 때 실행할 코드} const shoesPrice = 40000 if (shoesPrice < 50000) { console.log('신발을 사겠습니다.') } // 신발가격이 '50000' 아래이므로 console에 '신발을 사겠습니다' 출력 const capPrice = 60000 if (capPrice < 50000) { console.log('모자를 사겠습니다.') } // 모자 가격이 50000원 이상이므로 console에 출력 안됨 else, else if ... Read More
-
javaScript 'Class, Object' TOP NEW
-
javaScript 문법 '반복문' TOP NEW
반복문 while 반복문을 활용하여, 특정코드 반복실행 가능 while (조건) {조건을 만족할 때 실행 코드} let temperature = 20 while (temperature < 25) { console.log(`{trmperature}도 정도면 적당한 온도입니다.`) temperature++ // 증감연산자 활용 온도증가변화 } * 주의 할 점 반복문에 포함된 변수의 값을 계속 변화시켜주어 언젠가는 반복문이 끝날 수 있게 해주어야 함. 반복문이 계속 True값을 return 한다면 무한루프에 빠짐 이럴 떄는 ct... Read More
-
Python 문법 'map','filter' TOP NEW
-
Python Loop / Conditional TOP NEW
-
Python f-string TOP NEW
-
Python Exception TOP NEW
-
Python import TOP NEW
-
Python 변수 선언과 자료형 TOP NEW
변수 선언과 자료형 변수 선언 Python에서 새 변수를 만들때는 변수이름 = 값의 형태. a = b 와 b = a 는 다르다 출력은 print() 사용 a = 3 # 3을 a에 넣는다. b = a # a에 들어 있는 값인 3을 b에 넣는다. a = 5 # a에 5라는 새로운 값을 넣는다. 숫자형 자료형 다양한 형태의 숫자를 쓸 수 있다. a = 5 b = 4.8 숫자 간에는 사칙연산이 가능하다. a=7 b=2 a+b # 9 a-b # 5 a*b # 14 [ a**b (제곱)] a/b #3.5 [a%b 몫이 아닌 나머지 값] a+3*b # 13 (... Read More
-
Python 문자열 다루기 TOP NEW
문자열 기초 Python 에서는 ‘글’도 데이터로 사용가능 이를 ‘문자열’이라고 함 ’’ , “” 둘다 같음 따옴표로 감싸지 않으면 변수이름을 뜻하기 때문에 꼭 구분지어서 사용 a = 1 b = "a" c = a d = 'a' print(a,b,c,d) // 1 a 1 a 문자열 연산 문자열 간의 더하기는 주 문자열을 이어붙인 문자열을 반환한다. first_name = 'Harry' last_name = 'Potter' first_name + last_name # HarryPotter first_name + " " + last_name # Harry Potter a = "3" b =... Read More
-
Python DataType TOP NEW
리스트 (list) 리스트 기초 순서가 있는, 다른 자료형들의 모임 a = [1,5,2] b = [3,'a',6,1] c = [] d = list() e = [1,2,4,[2,3,4]] 리스트의 길이도 len() 함수를 이용 가능 print(len(a)) # 3 print(len(b)) # 4 print(len(d)) # 0 print(len(e)) # 4 순서가 있기 떄문에, 문자열에서처럼 indexing 과 slicing 가능 print(e[2]) # 4 print(e[3][1]) # 3 리스트의 더 많은 기능들 덧붙이기 a = [1,2... Read More
-
항해99 python 화성땅 구매제작 (POST) TOP NEW
POST 방식 버튼 클릭 > html(index.html) > ‘fn save_order’ (data name_give,address_give,size_give) > API(app.py) > doc list insert > return ‘msg’ > html(index.html) > ‘msg’ alert > reload App.py from flask import Flask, render_template, request, jsonify app = Flask(__name__) from pymongo import MongoClient import cert... Read More
-
What is SQL? TOP NEW
-
Python Basic 2 TOP NEW
함수 (def) 함수의 정의 이름은 선택에 따라 결정가능 수학문제에서 f(x) = 2*x+3 / y = f(2) 일때 y의 값은? '7' Javascript function f(x) { return 2*x+3 } Python def f(x) : return 2*x+3 y = f(2) = 7 함수의 응용 def sum_all(a,b,c) : return a+b+c def mul(a,b) : return a*b result = sum_all(1,2,3) + mul(10,10) print(result) # result 값 출력 106 조건문 ... Read More
-
Python Basic 1 TOP NEW
Python 기초 문법 변수 & 기본연산 a = 3 #3 을 a에 넣는다. b = a #a를 b에 넣는다. a = a+1 #a+1을 다시 a에 넣는다. num1 = a*b #a*b의 값을 num1이라는 변수에 넣는다. num2 = 99 #99의 값을 num2이라는 변수에 넣는다. 자료형 Number, Text Form name = 'bob' #변수에는 문자열이 들어갈 수도 있고, num = 12 #숫자가 들어갈 수도 있고, is_number = True 또는 False > "Boolean"형이 들어갈 수도 있다. # List, Dictionary도 들어갈 수도 있다. ... Read More
-
Python_jQuery_Ajax TOP NEW
JQuery는 외우는거 아니다. ‘class’ 대신 ‘id’로 지정 ‘temp_html’값 지정 > let temp_html = 지정값(백팁) ‘$(‘#id’).append(temp_html) = id값을 html 추가 필요에 따라 값을 지정하여 넣고 빼고 가능 JQuery & Ajax GET 방식 : data를 조회(read) 요청 할 때 POST 방식 : data를 생성(Create), 변경(update), 삭제(delete) 요청 할 때 ajax call code $.ajax({ type: "GET" url: "", data: {}, success: ... Read More