전체 글
-
Unity SmoothDampUnity 2024. 1. 16. 16:24
SmoothDamp는 유니티에서 대상 값을 부드럽게 변화시키는 데 사용되는 함수 중 하나이다 주로 카메라나 캐릭터의 움직임을 부드럽게 조절하는 데 자주 사용한다. Vector3.SmoothDamp(현재위치 , 타겟위치, ref 가속도, 걸리는상대적인 시간); 의 구조로 되어있는데 public class SmoothDampExample : MonoBehaviour { public Vector3 targetPosition; // 타겟위치를 지정후 사용 private Vector3 velocity = Vector3.zero; public float smoothTime = 0.3f; void Update() { transform.position = Vector3.SmoothDamp(transform.positi..
-
[JS]논리식의 함정JS 2022. 4. 2. 20:13
요청에 두개의 파라미터중 최소 1개를 요구하는것을 처리하기위한 논리식이 문제였다. 1번식 const { name = null, image_id = null } = req.body; if (!(name && !image_id)) return res.status(400).send({ message: "Bad Request" }); 2번식 const { name = null, image_id = null } = req.body; if (!name && !image_id) return res.status(400).send({ message: "Bad Request" }); 1번식으로 적고나서 테스트해보니 분명 파라미터중 1개라도 있으면 작동되도록 작성한것같았는데 둘중에 하나라도 빠지면 작동이 안되는 이슈였다....
-
[데이터베이스] 다대다 관계 설정에 대한 고찰TIL 2022. 3. 17. 23:19
오늘은 어떻게 프로젝트에 기여했나요? db 관계 설정과 다이어그램 작성을 하였다. 오늘의 프로젝트에서 힘든 점은 무엇인가요? 데이터베이스의 정규화(Normalization)이 어려웠다. 테이블간의 다대다 관계 설정이 매우 복잡하였다. 유저가 작성한 글을 의미하는 Journals 테이블과 유저가 그 저널을 작성할때 실행한 물주기,영양제주기,분갈이등의 행동을 기록하는 Actions 테이블의 관계 설정이 문제였다. 식물의 일지를 작성할때 물주기와 영양제주기를 동시에 했을수도있기에, 저널하나가 여러 액션을 가지고있을 수 있고, 액션또한 여러 저널을 가지고있을 수 있었다. 즉, Journals 와 Actions 는 N:M 다대다 관계라는 뜻이다. 저널에 액션컬럼을 추가하여 여러 액션을 기입하는건 불가능하기에 이를..
-
[AWS] Cloud Front, S3, react 파일 업데이트가 반영되지않는 문제카테고리 없음 2022. 2. 17. 17:53
.env같은 파일을 수정후 다시 빌드하여 s3에 업로드하여도 실제 사이트에 접속해보면 반영되지않는 경우가 있다. 나의 경우 서버의 주소를 .env에 적어놓았었는데 그 주소를 수정후 다시빌드해서 s3에 업로드하였음에도 사이트에서는 수정되기 전의 주소를 참고하고있었다. 이런 문제는 클라우드프론트에 저장되어있는 캐시때문에 생기는 문제이다. CF의 캐시가 수명이 다하기전에 원본을 수정한다면 파일이 바꼇음에도 캐시가 업데이트되지않는데 이것을 고쳐주려면 무효화명령을 하여서 캐시를 지워버리면된다. 경로를 직접 설정하거나 파일을 직접설정할수있는데(.jpg, .html) /* 와일드카드로 전체를 지정할수도있다.
-
비동기, Promise.all카테고리 없음 2021. 12. 22. 15:11
mdn을 참고하며 직접 정리 해보았다. Promise.all(iterable); Promise.all(); 입력: iterable한 '객체' Array[Promise.resolve("hello"), foobar] 출력: 대부분의 경우 pending 중인 Promise 출력값은 순서는 입력에 적은 순서와 같게나오고 완료 순서에 영향을 받지않는다. 즉 a, b, c Promise들을 담은 Array [a, b, c] 가 있을때 c의 결과가 빠르게 나오는지 b가 빠르게 나오는지에 관계없이 입력받은 순서대로 출력값의 순서가 정해진다. 단 입력으로 받은 Promise중 하나라도 거부rejcet 될 경우엔 Promise.all()은 즉시 거부된다. Promise.all().then().catch() 등으로 확인할 ..
-
[해결] cloneNode 사용 레퍼런스 문제카테고리 없음 2021. 12. 7. 12:06
TODO: DOM을 이용하여 places 배열의 모든 요소를 화면에 렌더링합니다. 핵심만 보면 이렇다. cityAndAddress.append(city) cityAndAddress.append(address) container.append(country) container.append(cityAndAddress) places.map(place => { const cloneContainer = container.cloneNode(true); cloneContainer.setAttribute("key", place.id); country.textContent = place.country city.textContent = place.city address.textContent = place.address ci..
-