본문 바로가기

반응형

전체 글

(853)
[2025 1학기 스프링부트 스터디] 류현준 #3&4주차 섹션 4. 회원 관리 예제-백엔드 개발 비즈니스 요구사항 정리데이터: 회원ID,이름기능: 회원 등록,조회아직 데이터 저장소가 선정되지 않음(가상의 시나리오)컨트롤러: 웹 MVC의 컨트롤러 역할서비스: 핵심 비즈니스 로직 구현리포지토리: 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리도메인: 비즈니스 도메인 객체, 예) 회원, 주문, 쿠폰 등등 주로 데이터베이스에 저장하고 관리됨DB: 실제 데이터들이 저장되는 곳아직 데이터 저장소가 선정되지 않아 인터페이스로 구현클래스를 변경할 수 있도록 설계데이터 저장소는 RDB,NoSQL 등 다양한 저장소 고민초기 개발 단계에서 구현체로 가벼운 메모리 기반 DB사용회원 도메인과 리포지토리 만들기 Member save(Member member): 회원 저장Op..
[2025 1학기 React.js 스터디] 이상래 #4주차 되게 오랜만이라.... 그래서 다 까먹어버림 ㅋㅋ전에 했던거 슥 보고 시작! 🔍 useRef 로 특정 DOM 선택하기리액트에서도 DOM을 직접 선택해야 하는 상황이 있다 !! ex) 1. 특정 엘리먼트의 크기를 가져와야 할 때 2. 포커스를 설정 해줘야 할 때 3. 외부 라이브러리를 사용해야 할 때 등등 ref - useRef useRef: Hook 함수 getElementById, querySelector 같은 Selector 함수를 사용하는 자바스크립트와는 다르게리엑트에서는 ref라는 걸 사용합니다. (함수형 컴포넌트에서 사용) 저번에 작성했던 InputSample 코드에 useRef를 추가했어요추가된건 다음 3줄인데요const nameInput = useRef();useRe..
[2025 ROS 스터디] <문승주> #3주차-<ROS의 기본 프로그래밍> I. ROS 프로그래밍 전에 알아둬야 할 사항표준 단위: SI 단위 사용좌표 표현 방식 (오른손 법칙)x‑축: 전방(Forward)y‑축: 좌측(Left)z‑축: 상향(Up)정회전(Positive rotation): 시계 반대 방향(+)프로그래밍 규칙: wiki.ros.org/CppStyleGuide 참고Ⅱ. Publisher 및 Subscriber 노드 작성·실행Catkin 워크스페이스 생성 (워크스페이스가 없을 때)$ mkdir -p ~/catkin_ws/src $ cd ~/catkin_ws$ catkin_make패키지 생성$ cd ~/catkin_ws/src $ catkin_create_pkg ros_tutorials_topic \ message_generation std_msgs roscpp패키..
[2025 1학기 알고리즘 스터디] 김규현 #3주차 Greedy 알고리즘 각 단계에서 최선이라고 생각되는 방법을 선택하는 알고리즘을 의미한다.매 단계에서 local optimum를 선택하고 그 선택들이 모여서 global optimum이 되기를 기대하는 것이다. Greedy 알고리즘이 global optimum을 도출하기 위해서는 앞 단계의 최선의 선택이 나중에 보았을 때도 최선이어야하는 탐욕적 선택 속성과 문제를 작은 부분 문제로 나눌수 있는 부분 최적 구조화가 이루어져야 한다. 1. 동전 0 앞선 문제보다 기본적인 문제여서 먼저 접근했다.동전들을 조합해서 목표 금액을 맞추는 문제인데 못 맞추는 경우는 생각할 필요가 없는 문제인것 같아서 다소 쉬웠던것 같다. time, total = map(int, input().split())price_list = [..
[2025 1학기 스프링부트 스터디] 정다은 #4주차 이번강의는🚀 섹션 5. 스프링빈과 의존관계🚀입니다! 1. 🛸 컴포넌트 스캔과 자동 의존관계 설정일단 MemberController 라는 이름의 컨트롤러 파일 하나를 생성해주었습니다. @controller -> 멤버 컨트롤러 객체를 생성해서 스프링에 넣어두고 스프링이 관리를 한다고 합니다.스프링 컨테이너에서 스프링빈이 관리된다 private final MemberService memberService = new MemberService();스프링이 관리를 하게되면 전부 스프링컨테이너에 등록하고 스프링컨테이너로부터 받아서 쓰도록 바꾸어야한다.new로 선언할 경우 -> 멤버 컨트롤러 말고 다른 컨트롤러에서 서비스를 가져다 쓸 수 있는 문제 발생 그래서! 이렇게 쓰는 것 보다는스프링 컨테이너에 등록을 ..
[2025 1학기 스프링부트 스터디] 이상래 #4주차 🔍 컴포넌트 스캔과 자동 의존관계 설정 이제 시험이 끝났으니 다시 공부해보겠습니다... 솔직히 뭐가 뭔지 하나도 모르겠어요 하하 열심히 알아볼게요Controller 를 통해서 외부 요청을 받고Service 에서 비지니스 로직을 만들고Repository에서 데이터를 저장하는게 일반적인 패턴이라고 합니다 @Autowired 위처럼 연결해 줄 때 쓴다 컨트롤러 생성자에서 - 멤버 컨트롤러가 생성이 될때 스프링 빈에 등록되어 있는 멤버 서비스 객체를 가져다 준다. (의존관계 설정) 서비스에서- 서비스를 생성할 때 repository를 가져다 준다 스프링 빈을 등록하는 2가지 방법 1. 컴포넌트 스캔과 자동 의존관계 설정 (위에서 한 방법) 컴포넌트 스캔 원리@Component 애노테이션이 있으면 스프링 빈으..
[2025 1학기 스프링부트 스터디] 고윤정 #4주차 섹션 5 - 스프링 빈과 의존관계4주차 스터디 시작합니당컴포넌트 스캔과 자동 의존관계 설정우선 MemberController를 만들어보자이렇게 해놓으면 멤버 컨트롤러 객체를 생성해서 스프링에 넣어두고 스프링이 관리를 하게된다그런데 스프링이 객체를 관리하게 되면, 직접 new로 생성할 수 없고 항상 스프링 컨테이너에서 꺼내서 써야한다이렇게 직접 new로 생성했을 경우엔스프링 컨테이너가 이 객체들을 관리하지 않기 때문에@Autowired도 안 되고,설정에서 구현체를 바꾸는 것도 안 되고,AOP나 트랜잭션 처리 같은 스프링 기능도 쓰지 못한다고 한다그래서 이렇게 쓰는 것보다는 스프링 컨테이너한테 등록을 하고 쓰면 된다고 하는데직접 확인해보자!이렇게 @Autowired를 만들어주면 스프링 컨테이너에서 관리하는 ..
[2025 1학기 스프링 부트 스터디] 남윤찬 #4주차 도메인 분석 설계, 엔티티 구현요구사항 분석구현해야 하는 기능의 목록은 이와 같다도메인 모델, 엔티티 설계요구 사항에 맞추어 위 그림처럼 엔티티와 테이블의 관계를 설계해준다. 자세한 내용은 그림을 봐도 알 수 있기 때문에 생략했다. 설계와 분석 과정에서 짚고 넘어갈 것들테이블에서 주문 테이블이 ORDER가 아니라 ORDERS인 이유는 SQL의 예약어에 ORDER BY가 있기 때문에 관례상 ORDERS를 많이 사용한다.일반적으로 실무에서는 다대다 매핑은 사용하지 않는다. 다대다는 관계테이블을 만들고 일대다, 다대일 관계로 만들어 사용하자.→ @ManyToMany를 사용하면 JPA가 자동으로 중간 테이블을 만들어주긴 하지만, 이 테이블에는 매핑에만 필요한 최소한의 정보만 있을 뿐, 추가적인 로직에 필요한 정..
[2025 1학기 스프링부트 스터디] 김민서 #4주차 스프링 빈을 등록하는 두 가지 방법을 살펴보자!컴포넌트 스캔과 자동 의존관계 설정회원 컨트롤러가 회원서비스와 회원 리포지토리를 사용할 수 있도록 하자@Autowired 를 하면 스프링이 연관된 객체를 스프링 컨테이너에서 찾아서 넣어줌 -> 객체 의존관계를 외부에서 넣어주는 것 DI(Dependency Injection), 의존성 주입 / 생성자가 1개만 있으면 생략 ㄱㄴ근데 오류 나요왜??memberService가 스프링 빈으로 등록되어 있지 않으니까.컴포넌트 스캔 원리를 알아보면@Component가 있으면 스프링 빈 자동 등록, @Component를 포함하는 @Controller, @Service, @Repository도 스프링 빈으로 자동 등록된다 그런데 현재 멤버 서비스는 그냥 순수한 자바 클래스니..
[2025 1학기 알고리즘 스터디] 남윤찬 #3주차 그리디 알고리즘정리그리디 알고리즘(Greedy Algorithm), 직역하면 탐욕 알고리즘이다. 이름에서 직관적으로 알 수 있듯이, 매 선택에서 최선으로 보이는 답을 선택하는 알고리즘이다. 그만큼 빠르고 단순하지만 항상 최적해를 보장하지는 못한다.조건그리디 알고리즘을 적용시키기 위해서는 두 가지의 조건이 필요하다탐욕 선택 속성: 앞의 선택이 이후의 선택에 영향을 주면 안된다. 현 시점에서의 최선의 선택이 전체적으로도 최선의 선택이어야 한다. 이 말이 완벽히 이해되지는 않는데, 가장 큰 예시인 활동 선택 문제를 떠올리면 받아들이기는 비교적 수월할 것 같다.최적 부분 구조: 전체 문제의 최적해가 부분 문제의 최적해로 구성될 수 있어야 한다. 쉽게 말해 점화식이다. 해결하고자 하는 문제를 부분으로 나눈 작은 ..
[2025 ROS 스터디] <문승주> #2주차-<ROS의 중요컨셉, 명령어, 도구> 1. ROS 용어 정리1.1 NodeROS 시스템에서 실행 가능한 최소 단위의 프로세스개발자가 기능별로 자유롭게 분할해 설계각 노드는 독립적으로 유닛 테스트 가능ROS의 대표적인 특징 중 하나1.2 Package하나 이상의 노드와 실행 정보를 묶은 디렉토리 구조종속 패키지들의 모음은 “메타 패키지(meta-package)”라고 칭함1.3 Message노드 간 데이터 통신을 위해 사용하는 데이터 구조기본 자료형(int32, float64, bool 등)메시지 내부에 다른 메시지를 포함하거나, 메시지 배열 형식도 정의 가능메시지 타입Topic연속적 단방향 통신1:1, 1:N, N:1, N:N 모두 지원네트워크·CPU 사용률이 높음(약 90%)Publisher: 토픽 송신자Subscriber: 토픽 수신자Se..
[2025 ROS 스터디] 장우혁 #3주차-ROS 기본 프로그래밍 1. ROS 기본 단위 및 규칙 2. 퍼블리셔와 서브스크라이버 만들기① 패키지 생성$cd ~/catkin_ws/src # 작업공간의 src 폴더로 이동 catkin_create_pkg ros_tutorials_topic message_generation std_msgs roscpp # 새 패키지 생성 (필요한 의존성: message_generation, std_msgs, roscpp 포함) ② 패키지 설정 파일 수정$gedit package.xml # 패키지 설정 파일 열기 # 아래 항목을 직접 수정 또는 추가해야 함: # message_generation # std_msgs # roscpp # message_runtime # std_msgs # roscpp * , 항목에 message_gen..
[2025 ROS 스터디] 윤윤지 #3주차-ROS 기본 프로그래밍 Ch 07 ROS 기본 프로그래밍 1.ROS 프로그래밍 전 알아둬야 할 사항 1) 표준단위 : SI 단위 사용 2) 좌표 표현 방식 : x(foward), y(left), z(up), 오른손 법칙(시계 반대 방향이 (+)) 3) 프로그래밍 규칙 2.Topic 작성 1) 패키지 생성cd: change directory 라는 기본 명령어~:틸드(홈폴더) 2) 패키지 설정 파일 수정 3) 빌드 설정 파일 수정 4)메시지 파일 작성 5) 퍼블리셔 노드 작성 6) 서브스크라이버 노드 작성 7) ROS 노드 빌드 8) 퍼블리셔 실행 *rostopic 9) 서브스크라이버 실행 10) 실행된 노드들의 통신 상태 확인 3.Service 작성 1) 패키지 생성 2) 패키지 설정..
[2025 ROS 스터디] 장우혁 #2주차 - ROS 중요 컨셉, 명령어, 도구 Node (노드) - ROS에서 가장 작은 실행 단위로, 하나의 실행 가능한 독립적인 프로그램이다. - 로봇의 특정 기능을 담당한다. (ex. 센서 입력, 모터 제어, 데이터 처리 등) - 여러 노드가 서로 메시지를 주고받으며 협업 → 모듈화된 구조 형성. Package (패키지) - 하나 이상의 노드, 노드 실행을 위한 정보 등을 묶은 소스코드 단위. - 여러 패키지를 묶은 것은 메타패키지(meta-package)라 하며 따로 분리함. Message (메시지) - 노드 간 통신을 위한 데이터 형식 (ex. int, float, bool 등 변수 형태). - 간단한 데이터 구조 및 메시지들의 배열 형태도 사용 가능. *Message (메시지) 통신 방식 - Topic (토픽) - 단방..
[2025 ROS 스터디] 윤윤지 #2주차-중요 컨셉, 명령어, 도구 Ch 04 중요 컨셉 1.용어 정리 1)Node: 최소 단위의 실행 가능한 프로세서 2)Package: 하나 이상의 노드, 노드 실행을 위한 정보 등을 묶어 놓은 것 3)Message: 변수형태로 메시지를 통해 노드간의 데이터를 주고받게 된다. 4)Topic: 단방향, 연속성을 가진 통신방법-publisher (메시지를 보냄)-subscriber (메시지를 받음) 5)Service : 양방향, 일회성클라이언트 ->서버 (서비스 요청)서버 -> 서버 (서비스 응답) 6)Action : 중간결과에 대한 피드백을 전달 2.메시지 통신 개념 1) 마스터 구동(roscore) 2) 서브스크라이버 노드 구동(rosrun) 3) 퍼블리셔 노드 구동 4) 퍼블리셔 정보 알림 5) 퍼블리셔 노드에 접속 요청 6) ..
[2025 ROS 스터디] 전예림 #3주차 - ROS 기본 프로그래밍 1. 프로그래밍 전에 알아둬야 할 사항1) 표준단위: SI 단위 사용(angle: radian, frequency: hertz, force: newton, power: watt, voltage: volt, length: meter, mass: kilogram, time: second, current: ampere, temprature: celsius)2) 좌표 표현 방식(x: forward, y: left, z: up), 오른손의 법칙3) 프로그래밍 규칙2. 토픽, 퍼블리셔, 서브스크라이버1) 패키지 생성cd ~/catkin_ws/srccatkin_create_pkg ros_tutorials_topic message_generation std_msgs roscpp(topic_publisher이 messa..
[2025 ROS 스터디] 한상민 #2주차-ROS의 중요 컨셉, 명령어, 도구 1. ROS의 핵심 구성 요소노드(Node)ROS에서 노드는 실행 가능한 독립적인 프로그램 단위로, 각 노드는 로봇의 특정 기능(예: 센서 입력, 모터 제어 등)을 담당한다.일반적으로 하나의 로봇은 수십 개 이상의 노드로 구성되며, 각 노드는 서로 통신하여 협력한다.패키지(Package)패키지는 ROS에서 가장 기본적인 소스코드 단위로, 노드, 메시지, 서비스 정의, 실행 스크립트 등이 포함된다.재사용성과 유지보수를 위해 관련 기능들을 하나의 패키지로 묶어 관리한다. 2. 노드 간 통신 구조메시지(Message)와 토픽(Topic)메시지는 노드 간에 주고받는 데이터 형식을 의미하며, 예를 들어 std msgs/String, sensor msgs/Image 등이 있다.토픽은 메시지를 주고받는 채널로, 하나..
[2025 1학기 스프링부트 스터디] 오세웅 #4주차 이 전 강의에서 회원 관리 예제를 만들었다.이를 컨트롤러와 연결하고 서비스와 리포지토리에 의존관계를 만드는 방법을 이번주에 배웠다.컴포넌트 스캔과 자동 의존관계 설정우리가 이 전에 만들었던 MemberService나 MemoryMemberRepository는 순수한 자바 파일이다.그래서 우리가 의존성을 만들어주기 위해서 @Component 애너테이션이 포함된 애너테이션들을 활용한다.@Controllerpublic class MemberController { private MemberService memberService; @Autowired public MemberController(MemberService memberService) { this.memberService = ..
[2025 ROS 스터디] 전예림 #2주차 - 중요 컨셉, 명령어, 도구 중요 컨셉1. ROS의 용어1) 기본 용어- Node: 최소 단위의 실행 가능한 프로세서. 메시지 통신으로 데이터 주고 받음.- Package: 하나 이상의 노드, 노드 실행을 위한 정보 등을 묶어 놓은 것.- Message: 노드 간의 데이터를 주고 받는 매체. integer, flaoting point, boolean과 같은 변수 형태. 메시지 안에 메시지가 있는 간단한 데이터 구조, 메시지들의 배열 등이 있는 형태의 구조도 가능.2) 메시지 방식- Topic: 연속성을 가진 단방향 통신 방법.(일회성) Publisher: 메시지를 보내는 것. 같은 메시지를 여러 subscriber에 보낼 수 있음. Subscriber: 메시지를 받는 것. - Service: 양방향 통신 방법. 처리 완료 알림...
[2025 1학기 스프링 부트 스터디] 석준환 #4주차 -스프링 컨테이너에 빈은 저 형식으로 저장된다빈 이름과 빈 객체(return 되는 객체) -스프링 컨테이너에 4개의 bean이 생성 된다. 그리고 각각의 의존 관계를 주입한다(DI)즉 빈을 생성하고 의존 관계를 주입하는 2 단계로 나눠진다 -스프링 컨테이너를 생성하고 설정(구성) 정보를 참고해서 스프링 빈도 등록하고, 의존관계를 설정 package hello.core.beanfind;import hello.core.AppConfig;import org.junit.jupiter.api.DisplayName;import org.junit.jupiter.api.Test;import org.springframework.beans.factory.config.BeanDefinition;import org.spri..
[2025 ROS 스터디] 김승현 #3주차-ROS 기본 프로그래밍 ros에서 사용하는 메시지는 세계에서 가장 널리 사용되는 표준 단위SI를 권장하고 있다. 퍼블리셔와 서브스크라이버 노드 작성 및 실행1. 패키지 생성 $cd ~/catkin_ws/src$catkin_create_pkg ros_tutorials_topic message_generation std_msgs roscpp 이 패키지는 message_generation, std_msgs, roscpp패키지를 의존하므로 의존성 옵션을 달아주었다. 2. 패키지 설정 파일 수정다음 명령어로 편집기를 이용해 파일을 열고 현재의 노드에 맞도록 수정할 수 있다.$ gedit package.xml 3. 빌드 설정 파일 수정ROS의 빌드 시스템인 캐킨은 기본적으로 CMake를 이용하고 있다. 다음 명령어로 수정 할수있다..
[2025 ROS 스터디] 김승현 #2주차-ROS의 중요컨셉, 명령어, 도구 ROS의 중요컨셉용어 Node - 최소 단위의 실행 가능한 프로세서. 하나의 실행가능한 프로그램. 각 노드는 메시지 통신으로 데이터를 주고 받는다.Package - 하나 이상의 노드, 노드 실행을 위한 정보 등을 묶어 놓은 것. 패키지의 묶음을 메타 패키지라 하여 따로 분리한다.Message - 메시지를 통해 노드간의 데이터를 주고 받는다. 메시지는 int, float, point, bool 같은 변수 타입이다. 메시지 통신 종류Topic - 단방향, 연속성을 가진 통신 방법. 메시지를 보내는 친구를 publisher node / 메시지를 받는 친구를 subscriber node. 1:1, 1:N, N:N 통신도 가능. (대표적 : 90%이상 사용) Service - 양방향, 일회..
[2025 ROS 스터디] 조원영 #2주차- ROS 용어, 명령어, 도구 ROS 용어Node최소 단위의 실행 가능한 프로세서하나의 실행 가능한 프로그램ROS에서는 최소한의 실행단위로 프로그램을 나눠 작업한다.Package하나 이상의 노드, 노드 실행을 위한 정보 등을 묶어놓은 것패키지의 묶음 = 메타패키지Message메시지를 통해 노드 간의 데이터를 주고받는다.Integer, Floating Point, Boolean같은 변수 형태메시지 안에 메시지를 품고 있는 간단한 데이터 구조 사용 가능ex) geometry_msgs/PoseStamped메시지들의 배열 같은 구조 사용 가능ex) float32[ ] ranges, sensor_msgs/LaserScanTopic, Service, Action 모두 Message를 사용한다.Topic ↔ Service단방향, 연속성을 가지는 ..
[2025 1학기 스프링부트 스터디] 이종윤 #3주차 실습해보기비즈니스 요구사항- 데이터: 회원ID, 이름- 기능: 회원등록, 조회- 아직 데이터베이스가 선정되지 않음 계층구조계층설명, 예시클래스Controller사용자의 요청을 받고, 응답을 돌려줌 (API or HTML View 반환)UserController, ApiControllerService실제 비즈니스 로직 처리 (계산, 조건 등)UserService, OrderServiceRepositoryDB와 직접 통신 (CRUD)UserRepository, JpaRepositoryModel데이터 구조 (DTO, Entity 등)User, Post, Person 등Domain핵심 비즈니스 개념, 규칙, 엔티티, 도메인 모델User, Order, Post, Comment 클래스 의존관계클래스설명MemberS..
[2025 1학기 스프링부트 스터디] 김민서 #3주차 비즈니스 요구사항 정리 웹 애플리케이션 계층 구조컨트롤러: 웹 MVC의 컨트롤러 역할서비스: 핵심 비즈니스 로직 구현리포지토리: 데이터베이스 접근, 도메인 객체를 DB에 저장하고 관리도메인: 비즈니스 도메인 객체, 데이터베이스에 저장하고 관리되는 것들구현 상황 가정데이터: 회원 아이디, 이름기능: 회원 등록, 조회아직 데이터 저장소가 선정되지 않음 -> 인터페이스로 구현 클래스를 변경할 수 있도록 설계데이터 저장소는 RDB, NoSQL 등 고민중초기 개발 단계에서는 가벼운 메모리 기반의 데이터 저장소 사용 회원 도메인과 리포지토리 만들기 회원 객체package hello.hello_spring.domain;public class Member { private Long id; private St..

반응형