본문 바로가기

반응형

전체 글

(657)
[2025 겨울방학 React.js 스터디] 박현빈 # 1주차 리액트가 만들어진 이유리액트 등장 이전 DOM의 문제점이벤트와 상태 변화가 많아질수록 DOM 업데이트 규칙이 복잡해지고 관리가 어려워지며 유지보수가 힘들어짐리액트의 독창적 접근과 Virutal DOM상태 변화시에 DOM 업데이트 규칙을 정하는 것이 아니라, 아예 다 날려버리고 처음부터 모든걸 새로 만들어서 보여준다면 어떨까? 라는 아이디어에 시작했다. 하지만, 전체를 새로 렌더링하면 성능이 문제갈 될 수 있다.Virutal DOM을 도입하여 해당 문제를 해결.실제 DOM 대신 메모리에 존재하는 가상 DOM을 사용하며 상태 변환 시, Virtual DOM에 새 UI를 렌더링하고 실제 DOM과 비교하여 변경된 부분만 업데이트 (선택적 수정이 가능)이를 통해 성능 문제를 해결하면서도 간단한 개발 환경을 제공...
[2025 ROS 스터디] 신채영 #1주차 - ROS 개요 및 설치 ROS란?1. 로봇 소프트웨어를 개발하기 위한 소프트웨어 프레임워크  1) 노드 간에 메세지 교환 방식을 통해 프로그램 공동 개발이 가능하다.  2) 명령어 도구, 시각화 도구(Rviz), GUI 도구(rqt), 3차원 시뮬레이터(Gazebo)를 지원한다.  3) 로보틱스에서 많이 사용되는 모델링, 센싱, 인식, 네비게이션, 매니플레이션 기능을 지원한다.  4) 로보틱스 생테계를 생성한다. 2. Open-source 기반의 meta-operating system  전통적인 운영체제는 아니다. 기존의 운영체제에 더해 로봇 응용 소프트웨어 개발을 위한 필수 기능들을 라이브러리 형태로 제공하고 있다. 3. 이기종 디바이스 간의 통신을 지원  ROS의 최대 장점이다. 하드웨어가 달라도 ROS를 통해 상호작용이 ..
[2025 ROS 스터디] 홍동형 #1주차 - ROS소개 약 40개의 로봇 운영체제중 배울것 → ROS과거에는 차이가 컸지만 점차 비슷해짐(일반 운영체제처럼)로봇 소프트웨어 플랫폼이 가져올 미래하드웨어, 소프트웨어 사이의 인터페이스모듈형 하드웨어하드웨어를 몰라도 응용 프로그램 작성 가능다른 분야에서 더 많은 인력 투입 가능 → 다른 분야 적용으로 빠른 발전 가능유저를 위한 (실수요)서비스에 집중 → 피드백총 결과 : 로봇 개발 발전!!ROS (Robot Operating System)소프트웨어 프레임워크 for 로봇 소프트웨어 운영체제라기보단….? 메타운영체제메타운영체제는? - 전통적인 운영체제(리눅스가 유리)를 이용하여 로봇 소프트웨어 개발을 위한 프레임워크(툴 박스) - 큰 장점 : 이기종 디바이스 간 통신 지원(다양한 하드웨어 커버 가능)특징1. 통신 인..
[2025 ROS 스터디] 황희찬 #1주차 ROS란?Personal Robot을 위해 만들어진 운영체제, 로봇 소프트웨어 개발을 위해 Tool Box를 제공하는 소프트웨어 프레임 워크.로보틱스에서 많이 사용되는 모델링, 센싱, 인식, 네비게이션, 매니퓰레이션 기능 지원 -> 로봇 생태계 구성 ROS는 리눅스, 윈도우 같은 전통적인 운영체제를 기반으로 하는 메타운영체제이다. 메타운영체제의 최대 장점으로는 이기종 디바이스 간의 통신을 지원한다. 즉, 서로 다른 모듈로 구성되어 있는 로봇 내에서 데이터 교환을 제공한다. ROS 특징1. 노드간의 메시지 전달 인터페이스 지원 및 통신 인프라 제공-메시지 파싱 가능로봇 개발 시 빈번히 사용되는 통신 시스템 제공, 캡슐화 및 코드 재사용을 촉진하는 노드들 간의 메시지 전달 인터페이스 제공 -메시지 기록 및 ..
[2025 ROS 스터디] 이동규 #1주차 : ROS 스터디 전 개요 ROS가 운영체제가 아니라고?  네. 놀랍게도 ROS는 Robot Operating System이라는 이름에 걸맞지 않게 사실 운영체제가 아닙니다.운영체제보다는 로봇 소프트웨어 플랫폼에 가깝죠. 우선 소프트웨어 플랫폼이 뭘까요?개발자에게 표준화를 제공해 효울적으로 소프트웨어를 만들 수 있게 도와주는 기반환경입니다!소프트웨어 플랫폼이 하드웨어 인터페이스를 통합해 하드웨어를 추상화, 규격화, 모듈화 해주죠그러면 하드웨어와 운영체제와 서비스가 분리되고 개발자는 서비스개발에 집중할 수 있게 됩니다! 왜 소프트웨어 플랫폼이 중요할까요?하드웨어에 신경쓰지않고 소프트웨어 개발에 집중이 가능해집니다.특정 하드웨어에만 의존하지않고 다양한 기기에서 소프트웨어 실행이 가능해집니다.하드웨어, 운영체제, 서비스가 분리되어 효율..
[2025 ROS 스터디] 이승찬 #1주차 - 로봇 운영체제 ROS 하드웨어 모듈 + 운영체제 (OS) + 애플리케이션 (App) + 사용자 = 생태계 → PC 와 Personal phone의 공통점Contents플랫폼의 구성 요소로봇 소프트웨어 플랫폼로봇 소프트웨어 플랫폼의 필요성로봇 소프트웨어 플랫폼의 필요성이 가져올 미래소프트웨어 플랫폼이 가져온 변화하드웨어 인터페이스 통합하드웨어 추상화, 규격화, 모듈화가격 down, 성능 up하드웨어, 운영체제, 앱 분리사용자 수요에 맞는 서비스 집중유저 증가 → 구매와 피드백, 새로운 생태계의 선환 구조 형성로봇 운영체제 : Galapagos (OpenRTM, OPRoS) / OpenSource (ROS) / ClosedSource (NAOqi) ...→ 초반에는 차이가 컸지만, 요즘은 서로 비슷하다로봇 소프트웨어 플랫폼의 필..
[2025 ROS 스터디] 이영상 #1주차 personal computer vs personal phone 공통점  -OS(운영체제)가 존재한다.운영체제는 컴퓨터 시스템의 하드웨어와 소프트웨어를 관리하고, 사용자와 컴퓨터 간의 상호작용을 가능하게 해주는 소프트웨어이다. - APP이 존재한다.-대중화 제품이다.-다양한 하드웨어의 결합이 가능한 하드웨어 모듈이다. -----------------------------------------------------------------------------OS(operating system)역할 1. 프로세스 관리 (여러 프로그램이 동시에 실행될 수 있도록 자원을 할당하고 관리) 2. 메모리 관리 (컴퓨터의 주기억장치(RAM)를 효율적으로 관리) 3. 저장장치 관리 4. 입출력장치 관리 5. 사용자 인터페..
[2025 겨울방학 스프링 스터디] 정채은 #1주차 섹션 11. 프로젝트 생성프로젝트 생성 main java  hello. hello.spring성공한겨둘다 인텔리제이로 바꿔주기  build. gradle 파일 선택 실제 라이브러리 선택 ㅡ> external library 파일   3. 환경설정 섹션 21. 정적 컨텐츠    2. MVC와 템플릿 엔진mvc : model, view, controller 컨트롤러랑 뷰를 나눠서 생각해.뷰 : 화면과 관련된 거     이미지 3. API@GetMapping("hello-api") @ResponseBody public Hello helloApi(@RequestParam("name") String name) { Hello hello = new Hello(); hello.setA..
[2025 ROS 스터디] 이호휘 #1주차 1주차에서는 로봇 소프트웨어 플랫폼, ROS에 대한 설명과 개발환경 구축에 대해 배울 수 있었다. 로봇 소프트웨어 플랫폼에서 가장 강조하신 내용은 Eco System인데 이는 개발자, 도구, 라이브러리, 하드웨어, 커뮤니티 등 모든 구성 요소들의 상호작용 및 연결된 생태계를 의미한다. 로봇 분야의 운영체제는 약 40여개가 있으며 대표적으로 open source 기반인 ROS, closed source 기반인 NAO qi, galapagos기반 OPROS와 RT가 있다. 이중 갈라파고스 기반은 보급에 실패하여 잘 사용되지 않는다.로봇 소프트 웨어 플랫폼을 사용하며 기대하는 것이 몇가지 있다. 하드웨어 플랫폼과의 소프트웨어 플랫폼간의 인터페이스 확립, 모듈형 하드웨어 플랫폼 확산, 사용자에게 제공할 서비스에..
[2025 겨울방학 스프링 스터디] 윤아영 #1주차 1. 프로젝트 생성사전 준비 : Java, IntelliJ / Eclipse 설치 https://start.spring.io 에서 스프링 프로젝트 생성 다운로드한 파일을 IntelliJ에서 실행한다.IntelliJ에서 main 파일을 실행하면 다음과 같이 localhost:8080 에서 실행된다. chrome에서 localhost:8080을 접속했을 때 다음과 같은 화면이 나온다. 2. View 환경설정resources/static/index.html Hello hello static/index.html을 생성하면 스프링 부트가 Welcome page 기능을 제공한다. localhost:8080 에 접속하면 다음과 같은 화면이 나온다. java/hello.hello_spring/controll..
[2025 ROS 스터디] 이성빈 #1주차 1주차에는 강의를 통해서 ros가 무엇인지와 간단한 설명 그리고 개발환경 구축까지의 내용을 들을 수 있었다. 먼저 ros는 os라는 이름에서 운영체제 인가 싶지만 또 우리가 흔히 아는 윈도우와 같은 운영체제의 느낌은 아니라고 전부터 알고는 있었다. 강의에서는 ros를 메타 운영체제로 설명하면서 새로운 개념이라고 소개를 했다. 솔직히 이부분에서는 이해가 잘 가지는 않았지만 그냥 로봇과 같이 센서,모터등 다양한 것들을 사용하는 하드웨어에 코딩을 하기위해 사용하는 것이라고 이해했다.그리고 나는 예전 부터 로봇을 해왔고 대회도 나갔었는데 ros에 대한 개념은 대학와서 처음 알았다. 예전에 세계대회에서 잘하던 팀들이 잘했던 이유가 ros에 대한 개념을 걔네들은 그때부터 알고 있었고 이를 대회에 적용시켜서 더 앞서..
[2025 겨울방학 React.js 스터디] 백채린 #1주차 1. 리액트 컴포넌트 - 리액트 컴포넌트를 만들 땐 import React from 'react; 를 통해 리액트를 불러와줘야 함 - 함수, 클래스 형태로 작성할 수 있음 (아래는 함수 형태) funcion Hello() { return 안녕하세요} - 컴포넌트를 내보내줘야 다른 컴포넌트에서 불러와서 사용할 수 있음 export default Hello; - 컴포넌트는 일종의 UI 조각이기 때문에 재사용 가능 // App.jsimport React from 'react';import Hello from './Hello';function App() { return ( );}export default App;   2. JSX - JSX는..
(미완성)[2024-2 SpringBoot 스터디] 정호용 #6주차 섹션 8~9 섹션 8다양한 의존관계 주입 방법크게 4가지 방법이 있음- 생성자 주입- 수정자 주입(setter 주입)- 필드 주입- 일반 메서드 주입 1. 생성자 주입OrderService의 구현체에 들어가보면, 생성자에 @Autowired가 있다. 스프링쪽에서 이걸 보면, 바로 MemberRepository와 DiscountPolicy를 꺼내서 주입해준다.- 생성자 호출시점에 딱 1번만 호출되는게 보장됨. -> 두번 호출되는것을 막을 수 있음.- 불변, 필수 의존관계에 사용됨. 여기서 생성자 호출 이후로 아무도 MemberRepository와 DiscountPolicy를 수정할 수 없다. 즉 얘는 불변임.* 좋은 개발습관은 한계점과 제약을 적절히 사용하는것. 불변이라는 개념은 정말로 중요하다. final로 선언했으..
[2024-2 Spring Boot 스터디] 조상혁 #6주차 이 글은 스프링 핵심 원리 - 기본편을 기반으로 작성되었습니다. 이번 주차는 다음주가 시험주간인 관계로 가장 중요하다고 생각했던 부분인자동등록과 수동등록을 언제 사용할 것인가를 정리해 볼까한다. 자동, 수동의 올바른 실무 운영 기준 제목에서 설명하는 자동과 수동은 빈 객체의 등록 즉 설정파일에 대해서 말하는 것이다. 이번 강의를 들으면서 깨달은 것 중에 이미 만들어 진 것을 쓰면 개발도 편하고 오류도 적어진다...!!라는 교훈을 얻었는데 이 깨달음을 얻게 하는데 1등 공신이 자동등록이다. 실제로 자동등록은 어노테이션  @Component , @Controller , @Service , @Repository 이것들로 딸깍.. 하면스프링 부트가 알아서 스캔하여 잘 만들어 주는데 , 내가 수동으로 등록하면 객..
[2024-2 웹기초 스터디] 김민재 #4주차 보충 수업 Part 1.문자열 메소드toUpperCase(), toLowerCase() - 대문자, 소문자trim(), trimStart(), trimEnd() - 공백 제거repeat() - 지정한 문자 반복padStart(), padEnd() - 지정한 문자열을 횟수만큼 추가indexOf() - 주어진 키워드를 문자열에서 찾아서 반환includes() - 문자열에 해당 문자가 있는지 확인startsWith(), endsWith() - 해당 문자로 시작하고 끝나는 지 확인replace(), replaceAll() - 문자열 안에 해당 문자를 변경substring() - 인덱스에 해당 되는 문자를 리턴split() - 주어진 기준에 따라 슬라이싱slice() - 주어진 범위에 따라 슬라이싱배열 메소드pu..
[2024-2 Java 스터디] 정채은 #7주차 [7-4] 예외 처리 FileNotFoundException : 존재 하지 않는 파일 열 때ArithmeticException : 산술 문제ArrayIndexOutOfBoundsException : 배열에 아무것도 없는 곳을 가리킬 때  try { ; ; ...} catch(예외1) { ; ...} catch(예외2) { ; ...} 예외 X : catch 문장 수행 X예외 O : catch 문장 수행 O 예외 발생 → 프로그램 중지 or  예외 처리 : catch 구문 실행 but 예외 발생 → 반드시 실행 how ? public class Sample { public void shouldBeRun() { System.out.println("ok ..
[2024-2 Java 스터디] 이민형 #7주차 (7-4장) 자바를 "자바라" (Java "java")    7. 자 우리 한 번 자바에 날개를 달아볼까?    예외를 처리하는 방법!  프로그램을 만들다 보면 수없이 많은 예외 상황이 발생한다.원하는 대로 예외를 처리하기 위해서 try ~ catch, throws 구문을 이용해 보자.  먼저, try ~ catch 문의 기본 구조를 살펴보자.try { ; ; ...} catch(예외1) { ; ...} catch(예외2) { ; ...} try 문 안의 수행할 문장 중에서 예외가 발생하지 않는다면 catch 문에 속한 문장들은 수행되지 않는다.하지만 try 문 안의 문장을 수행하는 도중에 예외가 발생하면 예외에 해당되는 catch 문이 수행된다.  public class Sam..
[2024-2 Java 스터디] 김재승 #7주차 목차예외처리스레드함수형 프로그래밍자바에서 예외처리와 스레드, 함수형 프로그래밍에 대해 알아보자1. 자바에서 예외 처리자바에서 예외는 프로그램 실행 중 발생할 수 있는 오류를 말한다.예외 처리는 프로그램이 예기치 않게 종료되지 않도록 하기 위해 중요하며 예외처리 시 ry-catch 문을 사용한다.예외 처리 기본 구조try { // 예외가 발생할 수 있는 코드 int result = 10 / 0; // 예외 발생} catch (ArithmeticException e) { // 예외가 발생했을 때 처리할 코드 System.out.println("0으로 나눌 수 없습니다.");} finally { // 예외 여부와 상관없이 실행되는 코드 System.out.println("이 ..
[2024-2 Java 스터디] 김지수 #7주차 자바 프로그래밍, 어떻게 시작해야 할까?내가 프로그램을 만들 수 있을까?프로그램을 막 시작하려는 사람이 맨 먼저 부딪히게 되는 벽은 아마도 다음과 같지 않을까?“문법도 어느 정도 알겠고, 책 내용도 대부분 이해된다. 하지만 이러한 지식을 바탕으로 내가 도대체 어떤 프로그램을 만들 수 있을까?”이럴 때는 ‘어떤 프로그램을 짜야지’라는 생각보다는 다른 사람들이 만든 프로그램 파일을 자세히 들여다보고 분석하는 데서 시작하는 것이 좋다. 그러다 보면 다른 사람들의 생각도 읽을수 있고, 거기에 더해 뭔가 새로운 아이디어가 떠오를 수도 있다. 하지만 여기에서 가장 중요한 것은 자신의 수준에 맞는 소스를 찾는 일이다. 그래서 08장에서는 쉬운 예제부터 시작해서 차츰 수준을 높여 실용적인 예제까지 다룬다. 공부한 내용..
[2024-2 React.js 스터디] 이서영 #5주차 API 연동하기 웹 애플리케이션을 만들 때 데이터를 브라우저에서만 X데이터를 보존, 다른 사람들도 조회 가능 하게 하려면서버를 만들고 서버의 API를 사용 → 데이터를 읽고 써야함   1. API 연동의 기본 API 호출 → axois 라이브러리 설치$ npx create-react-app api-integrate$ cd api-integrate$ yarn add axios axios 사용해서GET : 데이터 조회POST : 데이터 등록PUT : 데이터 수정DELETE : 데이터 제거REST API를 사용할 때, 하고 싶은 작업에 따라 다른 위의 메서드들로 요청 axios 사용법import axios from 'axios';axios.get('/users/1');get이 위치한 자리에는 메서드 이름을 소..
[2024-2 Spring Boot 스터디] 김아리 #5주차 [싱글톤 등장 배경]스프링은 보통 웹 애플리케이션 개발에 많이 사용된다. 웹 애플리케이션 특성상 여러 고객이 동시에 요청한다. 이때 고객이 서비스를 요청할 때마다 DI 컨테이너인 AppConfig가 새로운 서비스 객체를 생성한다면 초당 몇 백, 몇 만개의 객체를 생성해야 해야 하므로 메모리 낭비가 심하다. --> 해결방안: 해당 객체가 1개만 생성되고 이것을 공유하도록 설계하는 싱글톤 패턴을 적용하면 된다.  [싱글톤 패턴]객체를 딱 1개만 만들어 그것을 재사용한다. 하지만 여러 개의 문제점을 갖고 있다. 싱글톤 패턴을 구현하는 코드 자체가 많이 들어간다. 의존관계상 클라이언트가 구체 클래스에 의존한다(구체 클래스.getInstance()). --> DIP를 위반한다. 클라이언트가 구체 클래스에 의존해서..
[2024-2 Java 스터디] 김민서 #7주차 예외 처리 FileNotFoundException - 존재하지 않는 파일을 열려고 시도할 때ArithmeticException - 0으로 나누려고 할 때ArrayIndexOutOfBoundsException - 배열에서 아무것도 없는 곳을 가리켰을 때등의 예외가 있다. 1. 예외 처리하기try ~ catch 문 사용try { ; ; ...} catch(예외1) { ; ...} catch(예외2) { ; ...} finally - 어떤 예외가 발생하더라도 반드시 실행하게 하기public class Sample { public void shouldBeRun() { System.out.println("ok thanks"); } public st..
[2024-2 Spring Boot 스터디] 조상혁 #5주차 이 글은 스프링 핵심 원리 - 기본편을 기반으로 작성되었습니다. 여러가지 싱글톤을 구현하는 방법..싱글톤 컨테이너  웹 어플리케이션과 싱글톤스프링은 보통 웹 서비스에서 사용된다.웹은 다양한 사용자가 동시에 많은 요청을 한다는 특징이 있다. 그렇다면 지금까지 개발해온 것들은 그 요청을 잘 수행할까?아래 그림을 보며 생각해보자. 클라이언트 한명 당 하나의 객체가 생성되는 모습을 볼 수 있다. 너무나 메모리 낭비가 심하다. 이는 결국 비용적 문제로 이어질 수 있다. 음 그럼 어떤 해결방법이 있을까?3형제가 있는데 장난감을 하나씩 사주는건 너무 비싸다.그러면 하나사서 나눠쓰라고 하면 좋지 않을까!객체도 하나로 나눠쓰는게 좋지 않을까..! 일단 객체가 생성되는지 확인해보자. 싱글톤 패턴 객체를 하나만 만들어 사용..
[2024-2 Java 스터디] 김태일 #7주차 07-4 예외 처리1. try ~ catch 문- 기본구조- try문 안의 문장을 수행하는 도중에 예외가 발생하면 예외에 해당되는 catch문 수행try { ; ; ...} catch(예외1) { ; ...} catch(예외2) { ; ...} 2. finally- 예외 발생 여부에 상관없이 무조건 실행public class Sample { public void shouldBeRun() { System.out.println("ok thanks"); } public static void main(String[] args) { Sample sample = new Sample(); int c; try { ..
[2024-2 Spring Boot 스터디] 김문기 #5주 section 6if 만약 우리가 스프링 없이 순수한 DI 컨테이너를 통해 애플리케이션을 생성했다면?위와 같이 각 고객이 요청을 보낼 때마다 객체가 생성된다.따라서 우리는 객체를 딱 1번만 생성되게 하고 공유하게 해야한다. => 이러한 방식을 싱글톤 패턴이라고 한다. 싱글톤 패턴 public class SingletonService { //1. static 영역에 객체를 딱 1개만 생성해둔다. private static final SingletonService instance = new SingletonService(); //2. public으로 열어서 객체 인스턴스가 필요하면 이 static 메서드를 통해서만 조회하도록 허용한다. } public static SingletonService ge..

반응형