본문 바로가기
회고록

한화시스템 BEYOND SW CAMP 3주차 회고

by 증즌주 2024. 6. 3.

 

 

 

아니

진짜

벌써?

 

 

 

 

 

 

 

 

 

벌써 3주차가 다가왔다...

사실 오늘 3주차가 지나고 월요일이다,,,

 

저번주에 바로 못 올린 이유는

프로젝트와 자격증 공부가 컸던 것 같다.

 

 

나의 일과는 이러하다.

9시부터 6시까지 수업을 열심히(?) 듣고,

6시 이후에는 프로젝트를 2시간 정도 하고,

남은 2시간동안 빅데이터분석기사 실기 공부를 한다.

 

2시간동안만 하는 이유는

강의실 자습은 10시까지이기 때문이다.

 

사실 11시까지 자습운영을 했으면

더 공부했을수도 있다.

 

하지만 10시까지로 해주신 덕분에

다음날 아침에도 무리없이 입실을 찍을 수 있었다.

 

 

 

 

 

 

 

 

이번주는 시간이 빨리 지나갔다.

 

난생처음 github의 Readme 작성도 열심히 해보고,

DB설계도 하나하나 꼼꼼히 해보고,

팀 프로젝트에서 싸움도 없었다.

 

너무 좋았다.

 

발표도 성공적이었다.

비록 테이블 명세서는 있었지만

테이블 정의서가 없어서 아쉽다고 강사님께서 그러셨다.

 

다음엔 더 열심히 빠진 내용없이 전달해야지~

 

다들 놀러오세용~

 

beyond-sw-camp/be08-1st-SSACK3-Planners: 🧦정진주, 🧦강유성,🧦박성준,🧦이은서,🧦정수진 (github.com)

 

GitHub - beyond-sw-camp/be08-1st-SSACK3-Planners: 🧦정진주, 🧦강유성,🧦박성준,🧦이은서,🧦정수진

🧦정진주, 🧦강유성,🧦박성준,🧦이은서,🧦정수진. Contribute to beyond-sw-camp/be08-1st-SSACK3-Planners development by creating an account on GitHub.

github.com

 

 

 

 

 

 

그리고 이번주는 처음으로 도시락을 싸보았다.

 

도시락은 두 번 쌌는데

한 번은 집에 있던 돈가스와 김치였고,

나머지는 유부초밥이었다.

 

유부초밥을 예쁘게 싸왔는데

오다가 다 쏟아서 슬펐다.

 

사실 쏟은 이유는 강사님 생일파티였다.

강사님과 5개월동안 배우고 질문도 많이 할텐데

뭔가 강사님에게 해드리고 싶어

자연스럽게(?) 생일을 여쭤봤는데

이미 5일이나 지난 것이었다.

아쉬웠다.

 

하지만 아침에 케이크를 사와서

안들키고 축하해줘서 다행이었다.

 

 

 

암튼 이번주 수업은

남은 DB 수업과

Git을 활용한 수업,

소프트웨어공학에 대해 들었다.

 

 

Git은 학교 수업에서

흘러가듯이 듣고

실제로 깊게 써보는건 처음이었다.

 

강사님도 느끼셨는지 모르겠지만

그래서인지 Git에 대해서

자세하게 설명해준 느낌이었다.

 

초보인 내가 봐도

Git은 이렇게 사용할 수 있겠구나

라고 알 수 있을만한 수업이었다.

 

 

소프트웨어공학도

대학교에서 배운거랑은 느낌이 색달랐다.

그냥 내가 이 수업이 재밌어서 그럴 수 있다.

 

하지만 너무 재밌다.

소프트웨어공학도 

재밌게 알려주셔서 좋았다.

하지만 다이어그램을 만들때는

눈이 아팠다ㅏ.....

 

 

디자인패턴에 대한 내용도정처기에 나오는 내용이라서익숙했다.

 

 

 

 


 

 

 

 

기반기술 : Linux ,Database, Git (120시간)

백엔드 : Java Programming, 자료구조 &알고리즘,

Spring Framework, Server(MSA) (328시간)

프론트엔드 : HTML/CSS, Javascript, Vue.js (112시간)

데브옵스 : Docker, Kubernetes, Jenkins (96시간)

최종프로젝트 : 기반기술, Back-end, Front-end, DevOps (304시간)

 

 

 

 

3주차 회고도 시작~!

 

 

3주차는 Database, Git, 소프트웨어공학에 대해서 배웠다.

가장 새로웠던 건 Git이었다. 배워두면 유용할 것 같은 내용들이었다.

하지만 아직 Git에 대해 깊게 알지 못해

추가로 더 알아봐야겠다.

아직 안 알아봤다.

 

 

 

 

수업 내용

 

 

 

Git : 소스코드를 효과적으로 관리하기 위해 개발된 분산형 버전 관리 시스템 - 특정 시점의 버전이랑 비교를 해서 확인할 수도 있음. (https://git-scm.com) git 공식 홈페이지

운영체제에 맞는 git 다운로드 후 설치

저장소 - 파일/폴더의 저장 공간으로 파일이 변경 이력 별로 구분되어 저장됨.
원격 저장소 : 원격 서버에서 관리되며 여러 사람이 공유하기 위한 저장소
로컬 저장소 : 개인 PC에서 관리하는 저장소

c드라이브에 gittest 폴더 만들 gittest가 로컬저장소가 됨.

sourcetree에서 로컬 저장소에서 create로 저장소 새로 만들기

commit : 로컬 저장소에 파일이나 폴더의 변경 사항을 기록하는 작업
- 시간 순으로 저장하며 이전 commit 상태부터 현재 commit 상태까지 만들어 보관함.
- commit 내용을 통해 변경 이력과 변경 내용을 확인할 수 있음.
- 모든 commit 순서는 시간순대로 쌓인다.
그래서 인덱스가 필요함.

INDEX : commit 하기 위해 추가하는 파일들이 저장되는 공간
- 사용자 입장에서는 commit 대기 상태란 뜻으로 Staging Area라고 부름.

Branch : 저장소 내에서 다른 작업에 영향을 받지 않는 독립된 단위의 저장소
- 여러 개발자들이 동시에 다양한 작업을 할 수 있게 만들어 주는 기능
- branch 이동할 때 항상 commit하기
- 다른 branch로 편집하면 일이 분산될 수 있음.
스테이지 올리기를 하면 로고가 ?에서 +로 바뀌는데 시스템 입장에서 내가 아는 내용이라는 뜻

Checkout : 현재 Branch를 다른 Branch로 전환하는 것
Merge : 특정 브랜치의 작업 내용을 다른 브랜치에 병합하는 것
Clone : 원격 저장소의 내용을 로컬 저장소에 복제하는 것
Push : 로컬 저장소에서 변경된 이력을 원격 저장소에 업로드하는 것
Pull : 원격 저장소에서 최신 변경 이력을 다운로드하여 로컬 저장소에 적용하는 것

gitignore * 면 a/b/c 밑에 워크스페이스는 안된다. (** 면 가능한다)
ex) .idea/**/workkspace.xml gitignore 부터 먼저 만들기 (그래야 패키지되지 않음.)

저장소가 없는 경우 : 명령어 copy 후 develop 밑에 폴더 만들기


master : 배포 단계를 위한 브랜치

develop : 개발 단계 marge는 마지막에

feature : 기능 구현 단계
* 깃 플로우를 누르면 board라는게 생김
여러명이서 작업하려면 feature를 push해주면 여럿이 쓸 수 있음.
* 여러 기능 구현시
board말고 notice를 깃 플로우를 이용해 새 기능 만들기로 다른 기능 구현할 수 있음.

release : 버그 수정 등 문서 작업을 할 떄 필요한 배포 전 단계
* 작업이 끝나면 main과 develop에 정보를 전달해줌

hotfixes : 급한 버그 수정 등 오류를 해결하는 브랜치


Git 사용 예시
** 문제가 없는지 체크 중
- 그 사이 개발을 하는 개발자도 작업 완료
1. board 클릭
2. 탐색기 클릭
3. 게시판 페이지의 노트만 있음.
4. 노트 수정
5. 커밋
6. git flow에서 병합까지 처리해줌.
7. 깃 플로우 기능 마무리로 develop으로 notic 이동
8. board도 기능 완료
9. feature 없어지고 Marge 생김
10. 탐색기로 파일을 보면 게시판과 공지사항이 합쳐짐.
11. 깃 플로우 클릭 후 새 릴리즈 시작 누르기
12. 현재 develop에서 따옴
13. boardandnotice 생성
14. 게시판 페이지 수정
15. 커밋
16. 커밋 로그 생김.
17. 공지사항 페이지 수정
18. 커밋
19. 커밋 로그 생김.
20. release boardandnotice가 선택된 상태에서 릴리즈 마무리 선
21. develop으로 이동
22. main에 merge 1개 , develop에 merge 1개 생성
23. 새 핫픽스 시작 누르기
24. release에서도 가능하지만 핫픽스의 역할이 긴급한걸 수정하는 역할이라서 핫픽스에서 함.
25. 게시판 페이지 버그 수정
26. 핫픽스로 커밋 로그가 남음.
27. 깃 플로우 눌러서 핫픽스 마무리 함.
28. 핫픽스에서 버그 수정한게 main에서도 적용되고 develop에도 적용됨.
소프트웨어란?
* 소프트는 '부드럽다'라는 뜻으로 딱딱하고 변경하기 어렵다는 '하드'와 반대되는 개념
* 소프트웨어란 입력된 자료를 처리하여 결과를 출력하는 프로그램과 프로그램의 개발, 운용, 보수에 필요한 자료 일체를 말한다.

소프트웨어 공학이란?
* 공학적 원리를 소프트웨어 개발에 적용하는 것이 소프트웨어 공학이다.
* 공학이란 과학과 수학을 기초로 하여 구조나 기계, 시스템 등을 생산하는데 체계적인 방법을 적용하는 것을 말한다.

* 소프트웨어 개발 작업
1) 요구 분석 : /무엇을 개발할지/ 결정하는 작업
2) 설계 : 사용할 수 있는 기술을 이용하여 /요구 사항을 어떻게 구현할 것인지/ 결정하는 작업
3) 구현 : 설계한 내용을 구현하는 작업
4) 테스트 : 프로그램을 구현한 후 기능이 원하는 대로 작동하는지 테스트하는 작업 (통합테스트) 5) 유지보수 : 개발된 소프트웨어를 완벽해질 때까지 계속 발전시켜나가는 작업



UML(Unified Modeling Language) :소프트웨어를 시각적으로 모델링 하기 위해 사용
(소프트웨어를 모델링 하는 표준 그래픽 언어로 심벌과 그림을 사용하여 나타냄)

* 목적 - 개발 과정에 여러 가지 다이어그램으로 설계하면 구조가 좋아지고 개발자들 간의 의사 교환이 쉬워진다.

* 종류
1) 사용 사례 다이어그램 : 액터와 사용 사례를 통해 시스템의 기능을 모델링 하는데 사용한다. 기능적 요구 또는 업무 프로세스의 개관을 나타냄.
2) 시퀀스 다이어그램 : 객체 사이의 메세지 교환을 시간의 흐름에 따라 나타낸 것이다. 즉, 사용 사례로 표시된 업무 프로세스에 대해 시스템 안의 존재하는 객체가 어떤 식으로 개입하여 상호작용하는지를 나타냄.
3) 클래스 다이어그램 : 객체지향 시스템의 가장 근간이 되는 다이어그램 - 시스템의 정적인 구조를 나타낸다. - 또한 도메인(문제 영역)의 개념과 그것들 사이의 관계를 표시한다.
4) 패키지 다이어그램 : 관련된 클래스를 패키지로 그루핑하여 복잡한 시스템을 조직화하는데 사용한다.
5) 상태 다이어그램 : 외부 자극에 대한 시스템의 동적 상태 변화를 나타냄. - 외부 이벤트에 대해 민감하게 상태를 변화시키는 객체를 모델링한다.
6) 액티비티 다이어그램 : 시스템의 내부 프로세스를 단계별 작업 흐름 형태로 모델링함. (시스템의 동적 특징을 나타냄.)
7) 배치 다이어그램 : 노드, 컴포넌트, 커넥터 등 시스템의 물리적 자원 배치를 나타냄.

 

 

등등...  자세한 사항은 코딩일기를 확인하자.

 

 

 

 

 


 

 

 

2024.05.27 ~ 2024.05.31

Weekly회고

 

 

 

 

KPT (Keep, Problem, Try)

 

 

1) Keep 이어갈 내용

수업 내용 중 꿀팁도 메모장에 메모하기

수업시간에 배운 내용을 캡쳐 후 저장할 때 키워드도 같이 저장하기

모르면 그 날 안에 무조건 질문하기

그 날 복습하기

 

 

 

2) Problem 개선할 내용

수업시간 내용이 이해가 안된다면 바로바로 물어보기바로 물어보지 않으면 질문을 까먹는 경우가 있음.

 

 

3) Try 실행할 내용

수업과 병행하며 자격증 따기

코딩 테스트 스터디 만들기

 

 

 

 

 

 

1) 전반적인 느낀 점

이번주는 전반적으로 무난했던 것 같다.

단지 어려웠던 내용을 뽑자면 Git이 제일 이해하기 어려웠다.

아무래도 처음하는 내용이라서 적응이 어려웠던 것 같다.

Git에 대해서 정확히 알려면 나중에 프로젝트에 실습을 해봐야 할 것 같다.

프로젝트는 재밌었다. 처음부터 끝까지 내가 모르는 내용 없이

프로젝트를 마칠 수 있어서 좋았다.

다음 프로젝트에 똑같이 DB설계가 있다면 더 잘할 수 있을 것 같았다.

 

 

 

 

2) 좋았던 점

수업 내용이 모두 프로젝트와도 관련이 있는 내용이라서아무래도 수업이 끝나자마자 프로젝트를 진행한 것이효과가 컸던 것 같다. 이해가 쏙쏙 잘 들어온다.강사님이 말씀하시고, 조심하라고 한 이유를 알 것 같았다.대학교에서는 넘어가는 내용들이 여기선 하나하나 실습해보니느낌이 확실히 다르다. 난 요새 내가 캠프를 다니기 전과 후로나뉜다고 생각한다. 결론적으로 캠프는 재밌다.다른 프로젝트들도 기대가 된다.

 

 

 

 

 

3) 아쉬웠던 점

프로젝트 기간이 길다고 생각했는데 생각보다 짧았다.

그래도 팀원들이 잘 따라와주고 의견을 내줘서 고맙다.

또 나보다 더 세심한 팀원들이 있어서 놓치는 부분없이

잘 해결해나갔던 것 같다. 다음엔 계획을 더 효율적으로 세워야겠다.

 

 

 

 

4) 앞으로의 계획

앞으로 배울 JAVA 대해 그날그날 작성하고 기록하자.

강사님이 미리 올려주신 JAVA 수업자료를

참고해서 읽어보자.

 

 

 

 

3주차 회고 끝-!