전체 글
-
Unity를 활용한 디지털 트윈 구축 워크플로우 및 사례카테고리 없음 2025. 7. 29. 23:13
디지털 트윈이란?시각화(Visualization): 3D 가상 모델로 설비, 공정 시각화실시간 데이터 연동(Real-time Data): IoT 센서 및 시스템과 연결계획 및 최적화(Optimization): 시뮬레이션 기반의 예측·처방 시스템디지털 트윈의 5단계 구성가상 트윈: CAD, BIM 모델 등 실물의 3D 가상화연결 트윈: 실시간 IoT 센서 및 시스템 연결예측 트윈: 시뮬레이션 및 결과 비교처방 트윈: 반복 학습 통한 최적 의사결정자동화 트윈: 운영 자동화 및 자율 시스템Unity 기반 디지털 트윈 개발 워크플로우1. 모델 생성 및 변환픽시즈(Pixyz): 70+ CAD 포맷 변환 지원S 매니저: 웹 기반 CAD 변환 및 데이터 관리Unity ProBuilder: 직접 3D 모델 제작 가능무..
-
리눅스 명령어 정리웹 개발 2025. 7. 1. 18:30
디렉토리 및 파일 관련 명령어 ls – 디렉토리 목록 확인ls # 현재 디렉토리 파일 목록ls -l # 상세 정보 포함ls -a # 숨김 파일까지 보여줌 cd – 디렉토리 이동cd /home/usercd .. # 상위 디렉토리cd - # 이전 디렉토리 pwd – 현재 경로 출력 파일 및 디렉토리 조작 touch – 빈 파일 생성touch file.txt mkdir – 디렉토리 생성mkdir new_foldermkdir -p a/b/c # 중첩 생성 rm – 삭제rm file.txtrm -r folderrm -rf folder # 강제 삭제 cp, mv – 복사 / 이동cp file1.txt file2.txtcp -r dir1 dir2mv ..
-
ResponseEntity웹 개발/Spring 2025. 5. 14. 14:00
캘린더 API를 만들면서 일정등록 기능을 작성했다.@PostMapping("/events")public Event createEvent(@RequestBody Event event) { if (calendarService.hasConflict(event)) { throw new RuntimeException("해당 시간에 이미 일정이 존재합니다."); }캘린더 일정이 중복되었을때 이런식으로 예외 처리를 하면 spring이 500 Internal Serval Error로 응답한다. 그런데 클라이언트 입장에서는 단순히 500 Internal Server Error 응답가지고 내가 뭔가 잘못 보낸건지, 서버에서 문제가 생긴건지 알수가 없다. 그래서 조금더 명확한 응답을 위해 Respon..
-
selectKey를 활용한 스케줄-멤버 연결 쿼리 정리웹 개발/Spring 2025. 4. 30. 00:10
프로젝트를 작업중일정 작성시 그룹 멤버들중 몇몇과 함께 하는 일정을 등록할수 있는 쿼리를 작성하게되었다. 한마디로 일정에 해당하는 공유 멤버들을 연결해주어야 한다.이를 위해서TBL_SCHEDULE, TBL_SCHEDULE_GROUP_MEMBER 두개의 테이블을 연결해 주어야한다.그러기 위해선 중간 다리 역할인 TBL_SCHEDULE_MEMBER_GROUP이라는 테이블이 하나 필요하다. 이제 TBL_SCHEDULE과 TBL_SCHEDULE_GROUP_MEMBER 는 TBL_SCHEDULE_MEMBER_GROUP의 PK를 통해 연결된 상태이다. 현재 구조는 다음과 같다.TBL_SCHEDULETBL_SCHEDULE_GROUP_MEMBER이 두 테이블은 TBL_SCHEDULE_MEMBER_GROUP의 PK를 ..
-
Spring @RequestParam, @RequestBody, @PathVariable웹 개발/Spring 2025. 4. 27. 15:34
프로젝트 백엔드 API를 설계하면서 값을 넘길때 "@RequestParam, @RequestBody 어떤걸 써야하나? URL에 값이 들어있으면 어떻게 받아야 하지?" 라는 고민을 했다. 결론부터 말하면 간단한 값은 @RequestParam객체처럼 복잡한 값이면 @RequestBodyURL 경로에 들어있는 값이면 @PathVariable 을 쓰면된다.@RequestParamURL 쿼리스트링에 붙어있는 값을 꺼내오는 어노테이션이다. ?key=value 형식으로 넘어온 값을 받는다.GET /products?category=shoes&page=2@GetMapping("/products")public List searchProducts( @RequestParam String category, @Req..
-
리엑트(3)웹 개발/리엑트 2025. 4. 17. 11:58
memoization - 함수형 컴포넌트에서 다른 변화 때문에 연산이 되는 불필요한 연산을 안하게 하기위해 사용한다. useMemo란? - useMemo는 메모리에 있는 캐시를 사용하는 함수 - 캐시에 있는 것을 쓴다는 것은 최초에 마운트를 할 때 연산결과를 캐시에 담아놓고 리랜더링 있을 때 캐시와 결과를 비교하고, 내가 원하는 값의 변화를 줄 때만 연산을 수행한다. 이것을 memoization이라고 한다. const result = useMemo(() => heavyFunction(input), [input]);input이 바뀔때만 heavyFunction을 실핼한다. Context API란? - 리액트 내장 API(16버전 이상) 중 하나로 Props를 넘겨주지 않고도 컴..
-
리엑트(2)웹 개발/리엑트 2025. 4. 17. 10:34
라이프사이클 - 페이지에 컴포넌트가 생성되고, 수정되고, 사라지는 순서를 의미한다. React에서 클래스 컴포넌트를 사용하면, 9개의 메소드를 통해 작업 흐름을 제어할 수 있다. 마운트 - constructor : 새로운 컴포넌트를 생성할 때 마다 실행 - getDerivedStateFromProps : props를 state에 넣을 때 사용한다. 컴포넌트가 마운트될 때와 업데이트가 될 때 실행된다. - render : 준비해놓은 UI를 랜더링할 때 실행된다. - componentDidMount : 페이지에 컴포넌트가 나타난 직 후 실행된다. 업데이트 - getDerivedStateFromProps - shouldComponentUpdate : tr..
-
리엑트(1)웹 개발/리엑트 2025. 4. 17. 10:15
React란 ? - 복잡한 사용자 인터페이스(UI)를 쉽게 구축하기 위해 페이스북에서 제작된 자바스크립트 기반의 라이브러리 - 싱글 페이지 애플리케이션이나 모바일 애플리케이션 개발에 주로 사용된다. - 특정 데이터에 변화가 생길 때 매 번 변화를 주기 위한 코드를 작성하는 것이 아니라, 기존 코드를 없애고 다시 새롭게 랜더링 한다.렌더링(Rendering) - 화면에 보여주는 것 - 코드가 번역(컴파일)되어 실행된 뒤 화면을 통해 사용자에게 보여진다.// 상태가 변할 때 리렌더링 되는 간단한 컴포넌트import { useState } from "react";function Counter() { const [count, setCount] = useState(0); return ( 현재 ..