분류 전체보기
-
[제안 & 기획 단계] part.1Projects/MoimMoim 2024. 6. 1. 14:09
2023년 4월 16일 글을 이전함.시작하며이번글은 우리 '자바나무' 팀에서 프로젝트 단계중 [제안 & 기획] 단계를 진행한 내용을 작성하겠습니다. 너무 딱딱하게 작성하는 가 싶기도 하고 고민이 되네요. 자 그럼, 시작해볼까요?제안 & 기획프로젝트 문제 정의주제 정의비즈니스적 가치 제공핵심 기능 (무엇을)핵심 타겟 (누구에게)타당성 분석기술적 타당성 : 개발할 수 있는 능력을 가지고 있는가?경제적 타당성 : 개발 가치/ 비즈니스적 가치가 있는가?조직적 타당성: 구축된다면, 사용될 것 인가?규모 산정대략적인 프로젝트의 규모 산정얼마 만큼의 시간 동안, 몇 명의 개발 인원이 필요한지 등의 대한 대략적인 계산일정 계획프로젝트 각 단계별 세부 작업 파악 / 인원 배치WBS or 간트 차트를 통해 구체화조직 구성..
-
백엔드 팀 프로젝트 시작하기Projects/MoimMoim 2024. 6. 1. 12:24
2023년 4월 16일 글을 이전함🔥프로젝트를 시작하며백엔드 개발자 취업 캠프의 마지막인 팀 프로젝트를 시작하게 되었습니다. 지금까지 배운 프론트엔드와 백엔드, 데이터 베이스 를 잘 활용하겠다는 다짐을 세우며 시작해봅시다. 팀명 : 자바나무프로젝트 기간 : 23/04/05 ~ 23/05/15팀원 총 : 6명 1. 제안 & 기획2. 분석 & 설계3. 구현 & 테스트4. 배포 위의 4단계를 거쳐 프로젝트를 진행합니다.1. 제안 & 기획1.1 프로젝트 문제 정의주제 정의비즈니스적 가치 선정핵심 기능 선정핵심 타겟 선정1.2 타당성 분석기술적 타당성 분석경제적 타당성 분석조직적 타당성 분석1.3 규모 산정인력, 기간 및 비용 산정 및 검토필요 기술 stack 선정1.4 일정 계획프로젝트 각 단계별 세부 작업 ..
-
무럭무럭 (스마트 콘크리트 자동양생 시스템)Projects/아두이노 2024. 6. 1. 12:18
시작하며,저의 학부시절 진행했던 팀프로젝트에 대해 작성해보려고 합니다.저는 건축공학 전공이여서 건축에서 발생하는 문제를 it기술로 해결해보고 싶었습니다. 해당 프로젝트를 통해 제가 it쪽으로 진로를 잡게된 계기기도 하고 제겐 애착도 많고 의미도 큰 프로젝트였습니다.개요콘크리트 양생콘크리트는 타설 한 후 소요기간 (3일~7일)까지 경화에 필요한 온도와 습도를 유지해야합니다.기존 콘크리트 양생의 문제점열풍기, 스토프, 열선, 난로 등을 설치해 재래식으로 사람의 경험에 의존해 수동으로 양생하므로 정확한 온습도 조절이 어렵다.화덕식을 많이 이용하는데 이는 유해가스가 발생해 환경오염과 인명사고를 일으킴.스마트 콘크리트 양생 시스템의 필요성센서를 기반으로 온도와 습도 조절을 자동화해 무인으로 공백없이 정확하고 균일..
-
PintOS Project 3 VM swap in/outSW Jungle/TIL 2024. 5. 28. 02:42
핀토스 프로젝트 3 의 마지막 구현 과제인 (cow 제외) swap in/out 구현에 대한 이야기를 작성 해보려고 한다.기초적인 swap in out 에 대한 이야기와 내가 구현한 방법과 어이없는 실수로 인한 디버깅을 이야기 해보겠다. Swap in / out 이 뭔데요???운영체제의 메모리 관리 기법중 하나이다. 당장 사용할 (페이지폴트나서 요청받은) 새로운 물리 메모리가 필요한데 이미 (사용자 영역의) 물리 메모리가 꽉차서 더이상 새로운 물리 메모리 프레임도 할당 받지 못 할 때 안쓰는 다른 프레임을 하드 디스크의 스왑 영역에 보내버리고 그 공간을 지금 쓰고싶은 페이지에게 주는 것이다. Swap in / out Flow메모리가 꽉 차서 frame 할당 받는 것에 실패한다.현재 물리 메모리에 올라가있..
-
PintOS's Memory StructorSW Jungle/TIL 2024. 5. 21. 19:58
이번글에서는 핀토스 VM 프로젝트를 진행하며 공부하게된 페이징 기법과 핀토스의 메모리 구조에 대해 글을 써보려고한다. 더보기목차프레임 과 페이지페이징핀토스에서의 주소 변환핀토스의 메모리 구조프레임과 페이지프레임(frame): 물리 메모리를 일정한 크기로 나눈 블록이다. 페이지(page): 가상 메모리를 일정한 크기로 나눈 블록이다. 프레임과 페이지의 크기는 동일한 크기를 가지며 이 일정한 크기는 페이지 크기이다.일정한 크기 == 페이지 크기(사이즈) == 2^12 == 4096 주소 하나당 1byte의 크기를 저장 할 수 있다. 따라서, 4096개의 주소 * 1byte = 4kB 이므로, 페이지 하나는 4kB의 크기를 가진다. 페이지나 프레임이나 4096개의 연속된 행이 있는 리스트 라고 보았을 때 4..
-
pintos forkSW Jungle/TIL 2024. 5. 14. 06:17
sw사관학교 정글 과정중 pintos project 2 진행중에 구현한 fork 의 과정을 추척하는 글을 작성 해보려고 한다. 목차pintos에서의 forkfork 과정 추적1. userprogram 에서 fork 함수 호출 2. lib/user/syscall.c 에서의 처리 3. syscall-entry.S 4. userprog/syscall.c 의 syscall_handler 함수 5. userprog/process.c 의 process_fork() 6. threads/thread.c thread_create() 함수 7. do_fork 8. 다시 process_fork결론 pintos에서의 fork Pintos에서 'fork' 구현 목표는 부모 프로세스의 주소 공간을 정확하게 복사하여 자식 프로세스..
-
pintOS 에서 thread_yield() 에서 커널 패닉이 날때Archive/Issue Solve 2024. 5. 6. 15:36
문제 발생Formatting file system...Kernel PANIC at ../../threads/thread.c:474 in thread_yield(): assertion `!intr_context()' failed. 핀토스 프로젝트 2 user program 진행중 단일 테스트를 실행하면 위와 같은 커널 패닉이 자꾸 나타났다.ec2를 사용하는 동료는 해당 패닉이 발생하지 않고 wsl 을 사용하는 나에게 만 발생했다. 추적패닉에 적힌대로 thread.c 파일로 찾아가 474라인의 thread_yield()를 불렀는데 assert 문의 !intr_context() 에서 false 가 걸리는 것을 해결해야한다. intr_context() 함수는 현재 외부 인터럽트를 처리중이었다면(인터럽트 핸들러..
-
OS Project 1 WIL - alarm clock, priority카테고리 없음 2024. 5. 2. 09:32
OS Project 1 WIL1. Alarm Clocktimer interrupttimer는 하드웨어를 통해 초당 PIT_FREQ 회 interrupt가 발생함.4tic마다 time slicing하여 멀티 태스킹을 할 스레드들이 골고루 cpu 연산 작업을 하기 위해 timer interrupt를 사용함.interrupt는 지금 실행중인 thread를 잠깐 멈추고 그 interrupt에 해당하는 핸들러를 수행하도록 함. interrupt 핸들러가 수행되면 기존에 작업하던 스레드로 돌아감.Problempintos는 busy waitng 방식으로, ready queue에서 깨어날지 안할지를 thread_yield ()를 매번 발생시켜 cpu에서 확인함. cpu에서 확인하기 때문에 그만큼 쓸데없는 자원을 많이 ..