전체 글 51

SRDF(Semantic Robot Description Format)란?

SRDF 조사Semantic Robot Description Format📌 SRDF란?SRDF는 URDF로 표현하지 못하는, 로봇의 의미론적(semantic) 정보를 정의하는 XML 포맷예를 들어, 어떤 조인트들이 로봇의 "팔"에 해당하는지, 어떤 링크쌍의 충돌은 무시해도 되는지 등의 정보가 포함MoveIt이나 모션 플래닝에서 많이 사용🏗️ 전체 구조 element모든 SRDF 내용은 이 태그 안에 들어가야한다.내부 요소: , , , , ... name: 로봇 이름. URDF에서 정의한 이름과 동일해야 함 element이 태그는 조인트와 링크의 집합을 나타낸다. 모션 플래닝에서 어느 부위를 사용할지 정의하거나, 팔과 같은 서브시스템을 만들 때 사용 (예: left_arm, right_arm, gri..

robot 2025.11.24

KIST(한국과학기술연구원) 학사 인턴 일상

티스토리에 글을 너무 오랜만에 쓰는것같다... 작년의 오늘 우아한 테크코스를 하기 위해 프리코스 1주차 회고를 작성하고 있었다.나는 25년 5월에 kist에 인턴 연구원으로 입사하여 지금까지 약 5개월동안 일을 하고 있다. 5개월동안 느낀 점이라면 kist는 밥이 참 잘나온다. 그리고 내가 직장을 다니는지 대학교의 연장선을 다니는지 모를정도로 일과시간 중에 공부를 한다 ㅋㅋㅋ 서울로봇마이스터고등학교를 졸업한것, 대학 졸업작품으로 전동보행기를 만든것, 대학 졸업을 소프트웨어융합학과로 한것,, 이 모든 것들을 섞어서 난 다시 로봇으로 돌아왔다.... kist 인턴은 기간이 길면서 월급도 인턴치고 많이 주기때문에 대학원과 취업의 갈림길에서 고민중인 사람에게 매우 좋을것같다.

교양 & 기타 2025.10.22

AOP와 프록시 패턴의 관계

[ 목차 ] 소프트웨어 개발에서 유지보수성과 확장성을 높이기 위해 AOP(Aspect-Oriented Programming, 관점 지향 프로그래밍)과 프록시 패턴(Proxy Pattern)이 자주 사용된다. 두 개념은 공통된 목표를 가지지만 적용 방식과 활용 범위에서 차이가 있다. 이 글에서는 AOP의 개념과 프록시 패턴과의 관계, 그리고 Spring 프레임워크에서의 적용 방식을 살펴보겠다. 1. AOP란?AOP(관점 지향 프로그래밍)는 핵심 로직과 부가적인 관심사를 분리하여 모듈화하는 프로그래밍 패러다임입니다. 이를 통해 중복 코드를 줄이고 코드의 가독성을 높일 수 있다.AOP의 필요성중복 코드 제거: 로깅, 트랜잭션, 보안 검증과 같은 기능을 별도의 모듈로 분리.유지보수성 향상: 핵심 로직과 부가 기..

디자인패턴 2025.01.24

프록시 패턴이란?

[ 목차 ]1. 프록시 패턴이란?프록시 패턴은 객체에 대한 접근을 제어하거나 부가 기능을 추가하기 위해 대리 객체(Proxy Object)를 사용하는 디자인 패턴이다. 프록시는 클라이언트와 실제 객체(Real Subject) 사이에서 중간 역할을 수행하며, 성능 최적화, 보안 강화, 로깅, 캐싱과 같은 기능을 수행할 수 있다. 프록시 패턴의 필요성보안 강화: 민감한 객체에 대한 접근을 제한.성능 최적화: 필요할 때만 객체를 생성하여 리소스를 절약.로깅 및 감사: 모든 요청을 기록하고 분석.지연 로딩: 필요할 때만 실제 객체를 로드하여 성능 개선. 2. 프록시 패턴의 특징프록시 패턴의 주요 특징은 다음과 같다.접근 제어: 객체에 대한 불필요한 접근을 방지하고, 허가된 요청만 전달.부가 기능 추가: 로깅, ..

디자인패턴 2025.01.24

Garbage Collection

[ 목차 ] 1. GC란 무엇인가?Garbage Collection은 프로그래밍 언어에서 자동 메모리 관리를 담당하는 중요한 기술이다. Java에서는 개발자가 명시적으로 메모리를 해제하지 않아도 GC가 이를 자동으로 처리해주므로 메모리 누수를 방지하고 안정적인 프로그램 실행 환경을 제공한다. 이는 C/C++과 같은 언어에서 수동 메모리 관리를 해야 하는 복잡함을 해소하며, 프로그래머가 비즈니스 로직에 집중할 수 있도록 돕는다.GC는 사용되지 않는 객체를 식별하고 메모리에서 제거하여 새로운 객체 생성에 필요한 공간을 확보한다. Java의 GC는 JVM에서 실행되며, 다음과 같은 주요 목적을 갖는다:자동 메모리 관리 : 프로그래머가 명시적으로 메모리 할당과 해제를 하지 않아도 된다.메모리 누수 방지 : 참조..

JAVA 2025.01.17

싱글톤 패턴

[ 목차 ]싱글톤 패턴(Singleton Pattern)1. 싱글톤 패턴이란?싱글톤 패턴(Singleton Pattern)은 클래스의 인스턴스를 단 하나만 생성하여 전역적으로 접근할 수 있도록 보장하는 디자인 패턴이다. 애플리케이션에서 동일한 객체가 여러 번 생성될 필요가 없을 때 유용하다.정의: 특정 클래스의 인스턴스를 단 하나만 생성하여 애플리케이션 전역에서 공유.목적:객체의 불필요한 생성을 방지하여 메모리와 리소스를 절약.애플리케이션 내에서 중요한 상태를 공유하거나 전역 설정을 관리하기 위한 객체를 유지.주요 사용 사례:데이터베이스 연결 모듈.설정 정보 관리 객체.로깅(logging) 서비스.스레드 풀(Thread Pool) 관리.1-1. 싱글톤의 특징단일 인스턴스: 애플리케이션 전체에서 단 하나의..

디자인패턴 2025.01.08

디자인 패턴이란?

[ 목차 ]디자인 패턴의 정의디자인 패턴은 소프트웨어 설계에서 반복적으로 나타나는 문제에 대한 재사용 가능한 해결 방법이다. 이는 특정 언어나 기술에 종속되지 않으며, 다양한 상황에서 적용 가능한 일종의 설계 템플릿이다.이러한 디자인패턴은 객체지향 4대 특성(캡슐화, 상속, 추상화, 다형성)과 같은 설계 원칙(SOLID)을 기반으로 구현되어 있다.Christopher Alexander: "디자인 패턴은 특정 맥락에서 반복적으로 발생하는 문제와 이에 대한 최적의 해결 방법이다." 주요 특징재사용 가능성: 코드와 설계의 중복을 줄이고 효율성을 높인다.유지보수성: 코드 구조가 명확해져 협업과 유지보수가 용이하다.언어 독립성: 어떤 프로그래밍 언어에서도 적용 가능하다.문서화 용이: 설계 의도를 문서화하여 다른 ..

디자인패턴 2025.01.07

스프링 빈 (Spring Bean)

[ 목차 ]스프링 빈(Spring Bean)1. 스프링 빈이란?스프링 빈(Spring Bean)은 스프링 IoC(Inversion of Control) 컨테이너에 의해 관리되는 객체이다. 스프링 애플리케이션의 핵심 구성 요소로, 애플리케이션의 모든 객체는 빈으로 등록되어야 IoC 컨테이너가 이를 관리하고 의존성을 주입할 수 있다.정의: 스프링 IoC 컨테이너에 의해 생성되고 관리되는 객체.역할: 애플리케이션의 비즈니스 로직, 데이터 액세스 객체, 서비스 등을 빈으로 정의.특징:필요할 때 컨테이너에서 빈을 가져와 사용할 수 있음.생명주기와 의존성 관리가 자동화.2. 스프링 빈의 생성과 등록 방법2-1. 어노테이션 설정스프링 2.5 이후부터는 어노테이션을 사용하여 빈을 등록할 수 있다.아래의 어노테이션으로 ..

Spring 2025.01.07

POJO(IoC/DI, AOP)

[ 목차 ]스프링 프레임워크란?스프링 프레임워크(Spring Framework)는 엔터프라이즈 애플리케이션 개발을 간소화하기 위한 오픈소스 프레임워크다. 경량화와 유연성을 목표로 설계되었으며, 다음과 같은 주요 특징을 가지고 있다:POJO 기반: 스프링은 복잡한 객체 모델 대신 POJO(Plain Old Java Object)를 활용하여 개발을 단순화한다.IoC/DI(Inversion of Control/Dependency Injection): 객체의 생성 및 관리 제어를 프레임워크가 담당하여 결합도를 낮춘다.AOP(Aspect-Oriented Programming): 비즈니스 로직과 횡단 관심사를 분리하여 코드의 모듈화를 지원한다.모듈화: 스프링은 다양한 모듈(예: 스프링 데이터, 스프링 웹, 스프링 ..

Spring 2025.01.06

MVCC

[ 목차 ]동시성 제어와 락 메커니즘데이터베이스 시스템에서 동시성 제어는 다중 트랜잭션 환경에서 데이터 일관성과 무결성을 보장하기 위해 필수적이다. 락 메커니즘 요약공유락(Shared Lock): 데이터를 읽는 동안 쓰기를 방지.배타락(Exclusive Lock): 데이터를 읽거나 쓸 때 다른 트랜잭션의 접근을 완전히 차단.갭 락(Gap Lock): Phantom Read 방지를 위해 레코드 사이의 간격에 락을 설정.넥스트 키 락(Next-Key Lock): 갭 락과 레코드 락을 결합하여 동시성을 제어.락 메커니즘의 한계락 경쟁(Lock Contention): 다수의 트랜잭션이 동일 데이터에 락을 요청하면 대기 시간이 증가.데드락(Deadlock): 트랜잭션 간 교착 상태로 인해 작업이 진행되지 않음.성..

DB 2024.12.27