본문 바로가기

Programming59

[Javascript] context path 가져오는 방법 1. window.location.pathname 이용하는 방법 (비추) // 1. split 사용하는 방법 const pathArray = window.location.pathname.split('/'); const contextPath = pathArray[1]; console.log(contextPath); // 2. substring 사용하는 방법 const contextPath = window.location.pathname.substring(0, window.location.pathname.indexOf("/",2)); console.log(contextPath); => contextPath가 '/' 일 경우에 원하는 결과를 얻지 못할 수 있다. 따라서 2번 방식을 추천한다. 2. sessio.. 2023. 6. 23.
[Javascript] class 내 비동기 함수에서 this를 현재 class로 설정하는 방법 ● 문제 - Class 내부에서 ajax나 axios와 같은 비동기 함수 사용 시 success, then과 같은 콜백 영역에서 this가 현재 class로 인식하지 못함 - ajax : jQueyr Ajax 객체 자체를 가리킴 "context" 옵션을 통해 명시적으로 컨텍스트 지정 가능 - axios : then 내부에서 this는 axios의 콜백 함수에서의 컨텍스트를 가리킴 기본적으로 "undefined"로 설정 됨 ● 해결 1) 화살표 함수(Arrow Function) 사용 // ajax 방식 $.ajax({ url: "/api/data", success: response => { console.log(this); // 원하는 컨텍스트를 참조 // ... }, error: error => { co.. 2023. 6. 12.
[Javascript] Ajax async(동기 처리)가 먹히지 않을 때 ● Ajax(Asynchronous JavaScript and XML) * 자바스크립트의 라이브러리 중 하나 * 브라우저가 가지고 있는 XMLHttpRequest 객체를 이용해서 * 전체 페이지를 새로 고치지 않고 페이지의 일부만을 로드하는 기법 * 자바스크립트를 사용한 비동기 통신 * 클라이언트와 서버간에 XML 데이터를 주고받는 기술 ● Ajax async 옵션 * 동기(false) : 웹에서 서버측에 데이터를 요청하고 데이터의 수신이 완료될 때까지 기다리는것 * 비동기(true) : Ajax를 이용하여 데이터의 수신을 기다리지않고 바로 다른 작업을 실행 - 페이지의 로딩을 기다리지않으므로 웹의 속도가 빠르게 반응 가능 - async 옵션을 따로 지정해주지 않을 경우 true로 기본 설정됨 ● Aja.. 2023. 5. 15.
[Javascript] 문자열 표현 시 '(작은 따옴표), "(큰 따옴표), `(억음 부호) 차이 ● 문자열 표현 방식 1) '(작은 따옴표) 사용 const str = 'abcd'; 2) "(큰 따옴표) 사용 const str = "abcd"; 3) `(억음 부호 : backtick) 사용 const str = `abcd`; ● 방식별 차이 * '(작은 따옴표)와 "(큰 따옴표)의 차이는 거의 없음 * `(억음 부호)의 경우엔 개행 처리가 가능 - 개행 처리를 하기 위해서는 '(작은 따옴표)와 "(큰 따옴표)는 \n을 직접 넣어줘야 함 * `(억음 부호)의 경우, 변수 작성 시 ${} 태그로 값을 부여가 가능함 * 문자열 상수를 표현하기 위해 \" \' 같은 escape 필요 없음 - 사실 '(작은 따옴표)로 묶을 경우 "(큰 따옴표)를 사옹하고, "(큰 따옴표)로 묶을 경우 '(작은 따옴표)를 사.. 2023. 5. 12.
[Javascript] 숫자 천 단위로 ,(콤마) 찍는 방법 ⊙ 아래 방식은 정규식을 이용한 방식으로 ⊙ 여러 블로그들을 참고했을 때 가장 깔끔하고 간단한 방법이였다. function numberWithCommas(val) { return val.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); } ※ 더 다양한 방법을 통해 구현하고 싶을 경우, 아래의 링크 참고 https://hianna.tistory.com/441 참고 쥬리리리 - [Javascript] 천 단위(숫자 3자리) 콤마 찍기 https://s-yeonjuu.tistory.com/48?category=967890 2023. 5. 11.
[Java] SpringBoot 서버 포트 변경 방법 ⊙ 스프링부트 설정 파일이 application.properties(또는 application.yml)의 server port 부분을 변경해준다. ⊙ default port는 8080이다. ⊙ 스프링부트의 경우 내장 Tomcat을 사용하기 때문에 Tomcat을 따로 세팅해주지 않아도 된다. 만약, 8080에서 8050으로 변경하고 싶을 경우 아래와 같이 변경해준다. 1) application.properties 사용할 경우 server.port = 8050 2) application.yml 사용할 경우 server: port: 8050 2023. 5. 10.
[Unity] 15. 3D 기초 게임 개발 1. 계획하기 게임 개발은 계획부터 차근차근 2. 플레이어 공(Sphere), 바닥(Plane) 생성 Material 적용 기본 움직임, 점프(더블 이상 점프 불가능) 기능 적용 공의 움직임이 너무 빠르면 Mass를 늘리거나 Power를 낮추거나 테스트를 용이하게 위해서 변수를 public로 선언하여 Inspector창에서 값 설정 공과 부딪히면 점수를 올리고, 해당 아이템이 없어지는 기능 적용 SetActive(bool) : 오브젝트 활성화 함수 공과 부딪힐 때 사운드 삽입 AudioSource : 사운드 재생 컴포넌트, AudioClip 필요 AudioClip : 사운드 파일 컴포넌트 비활성화 구간에서는 컴포넌트 함수가 실행되지 않을 수도 있음 3. 아이템 아이템(Capsule) 생성 Material.. 2022. 7. 25.
[Unity] 14. 게임 인터페이스 Canvas - UI가 그려지는 도화지 역할인 컴포넌트 Screen - 게임이 표시되는 화면 - 해상도로 크기 결정 - Unity의 좌표계 : Screen(카메라 X) vs World(카메라 O) - 마우스 커서도 스크린 좌표계에 포함 Text - 문자열을 표시하는 UI - (상업적으로 사용할 때) 폰트 라이선스 꼭 확인 Image - 이미지를 표시하는 UI - 이미지 파일을 Sprite로 설정해야 UI 적용 가능 - Filled 기능으로 쿨타임 효과 구현 가능 Button - 클릭 이벤트를 가지고 있는 반응형 UI - OnClick() : 버튼 클릭 시 호출되는 이벤트 함수 - 버튼 클릭은 누르기-떼기 한 세트로 동작 Anchors - 빨간 점 : 캔버스에서의 기준점 - 파란 점 : 컴포넌트에서의 기준.. 2022. 7. 11.
[Unity] 13. 물리 충돌 이벤트 물리 충돌 이벤트 - MeshRenderer를 통해서 오브젝트의 재질 접근 - OnCollisionEnter : 물리적 충돌이 시작할 때 호출되는 함수 - OnCollisionStay : 물리적 충돌이 일어나고 있을 때 호출되는 함수 - OnCollisionExit : 물리적 충돌이 끝났을 때 호출되는 함수 - Color : 기본 색상 클래스 - Color32 : 255 색상 클래스 - Collision : 충돌 정보 클래스 using System.Collections; using System.Collections.Generic; using UnityEngine; public class OtherBall : MonoBehaviour { MeshRenderer mesh; Material mat; void .. 2022. 7. 10.
[Unity] 12. 물리 영향을 받는 게임 오브젝트 이동 컴포넌트 가져오기 - GetComponent : 자신의 T타입 컴포넌트를 가져옴 using System.Collections; using System.Collections.Generic; using UnityEngine; public class MyBall : MonoBehaviour { Rigidbody rigid; void Start() { rigid = GetComponent(); } } 물체 속도 설정으로 이동 - velocity : 현재 이동 속도 - RigidBody 관련 코드는 FixedUpdate에 작성 (일반 Update 함수에 X) using System.Collections; using System.Collections.Generic; using UnityEngine; public c.. 2022. 7. 10.
[Unity] 11. 물리 영향을 받는 게임 오브젝트 생성 유니티는 컴포넌트 기반 게임 엔진 - Inspector 창에 있는 Transform, Sphere 등등 하나하나가 모두 컴포넌트 중력 - Rigidbody : 물리효과를 받기 위한 컴포넌트 - Mass : 무게 (수치가 높을수록 충돌이 무거워짐) - Use Gravity : 중력 받는지 결정 - Is Kinematic : 외부 물리 효과를 무시 (움직이는 함정 만들 때 유용) 충돌 영역 설정 - Collider : 물리효과를 받기 위한 컴포넌트 - 충돌 기준은 보이는 것이 아닌 Collider에 따름 재질 - Material : 오브젝트의 표면 재질을 결정하는 컴포넌트 - Project 창에서 우클릭 > Create > Material - Inpector 창에서 설정 후 드래그로 오브젝트에 적용 - 재질.. 2022. 7. 10.
[Unity] 10. 델타타임 Translate : 벡터에 곱하기 transform.Translate(Vec * Time.deltaTime); Vector 함수 : 시간 매개변수에 곱하기 Vector3.Lerp(Vec1, Vec2, T * Time.deltaTime); Time.deltaTime : 이전 프레임의 완료까지 걸리는 시간 - 이동속도를 공평하게 하기 위해 - ex) 성능이 좋은 컴퓨터와 좋지 못한 컴퓨터가 있을 때 Update가 돌 때마다 이동하도록 설정해놨다면 성능이 좋은 컴퓨터에서 같은 시간 동안 더 많이 이동함 - deltaTime 값은 프레임이 적으면 크고, 프레임이 많으면 작음 참고 골드메탈 - 이동거리를 공평하게, 델타타임 [유니티 입문 강좌 B8] https://www.youtube.com/watch?v=QG.. 2022. 7. 10.
[Unity] 9. 목표 지점 이동 MoveTowards - 단순 등속 이동 - 매개변수 : 현재 위치 , 목표 위치, 속도 - 마지막 매개변수에 비례하여 속도 증가 transform.position = Vector3.MoveTowards(transform.position, target, 1f); SmoothDamp - 미끄러지듯 부드러운 감속 이동 - 매개변수 : 현재 위치, 목표 위치, 참조 속도, 속도 - ref : 참조 접근 → 실시간으로 바뀌는 값 적용 가능 - 마지막 매개변수에 반비례하여 속도 증가 Vector3 velo = Vector3.zero; transform.position = Vector3.SmoothDamp(transform.position, target, ref velo, 1f); Lerp - 선형 보간 이동 - .. 2022. 7. 10.
[Unity] 8. 오브젝트 이동 스칼라 : 순수한 값 int number = 4; 벡터 : 방향과 그에 대한 크기 값 Vector3 vec = new Vector3(0, 0, 0); Transform : 오브젝트 형태에 대한 기본 컴포넌트 - 오브젝트는 변수 transform을 항상 가지고 있음(따로 변수를 선언 안 해도 됨) - Translate : 벡터 값을 현재 위치에 더하는 함수 Vector3 vec = new Vector3(5, 0, 0); transform.Translate(vec); Input 값으로 translate 하는 방법 Vector3 vec = new Vector3(Input.GetAxis("Horizontal"), Input.GetAxis("Vertical"), 0); transform.Translate(vec).. 2022. 7. 10.
[Unity] 7. 키보드 및 마우스 입력 Input : 게임 내 입력을 관리하는 클래스 - 마우스, 키보드 등 anyKeyDown : 아무 입력을 최초로 받을 때 true if (Input.anyKeyDown) { Debug.Log("플레이어가 아무 키를 눌렀습니다."); } anyKey : 아무 입력을 받으면 true if (Input.anyKey) { Debug.Log("플레이어가 아무 키를 누르고 있습니다."); } (anyKeyUp은 따로 없음) 각 입력 함수는 3가지 행동으로 구분 - Down / Stay / Up GetKey : 키보드 버튼 입력을 받으면 true - Input.GetKeyDown() / Input.GetKey() / Input.GetKeyUp() - Enter : KeyCode.Return (KeypadEnter은 .. 2022. 6. 28.
[Unity] 프로젝트명 변경 참고 [Unity3d] 프로젝트 이름 바꾸기 https://rymin.tistory.com/34 2022. 6. 28.
[Unity] 6. 게임 오브젝트의 흐름 1. 초기화 단계 Awake : 게임 오브젝트 생성할 때, 최초 실행 Start : 업데이트 시작 직전, 최초 실행 2. 물리 단계 FixedUpdate : 물리 연산 업데이트 - 1초에 50번 실행 - 컴퓨터 사양에 영향을 거의 받지 않음 - 고정된 실행 주기로 CPU를 많이 사용 3. 게임 로직 단계 Update : 게임 로직 업데이트 - 1초에 60번 실행 - 환경에 따라 실행 주기가 떨어질 수 있음 => 컴퓨터 사양에 따라 FixedUpdate가 더 많이 실행될 수도, Update가 더 많이 실행될 수도 있음 LateUpdate : 모든 업데이트 끝난 후 - 캐릭터를 따라 다니는 카메라 또는 로직의 후처리 등 4. 해체 단계 OnDestory : 게임 오브젝트가 삭제될 때 - 게임 오브젝트를 꼭 .. 2022. 6. 28.
[Unity] 5. C# 프로그래밍 기초 1. 변수 : 데이터를 메모리에 저장하는 장소 int : 정수형 데이터 float : 숫자형 데이터 - 뒤에 f를 꼭 붙여줘야 함 string : 문자열 데이터 bool : 논리형 데이터 - true / false 선언 > 초기화 > 호출(사용) 2. 그룹형 변수 : 변수들을 묶은 하나의 장소 배열 : 가장 기본적인 고정형 그룹형 변수 프로그래밍에서의 시작 순번은 0 리스트 : 기능이 추가된 가변형 그룹형 변수 크기를 벗어난 탐색은 오류를 발생 3. 연산자 상수, 변수값을 연산해주는 기호 % : 몫이 아닌 나머지를 출력 프로그래밍 부등호 : > (초과) / = (이상) / 2022. 6. 26.
반응형