Graduation is an important life event that you want to look your best for. When choosing a graduation dress, order it a few weeks in advance to ensure proper fitting, plan your budget for the dress and accessories, and search online or in magazines for style ideas. Consider similar dresses in stores but order online to save money. Bring the dress when choosing matching accessories, and keep your style choice secret until the big day to surprise others. Be sure the dress is not too tight, revealing, or inappropriate for the formal occasion.
Graduation is an important life event that you want to look your best for. When choosing a graduation dress, order it a few weeks in advance to ensure proper fitting, plan your budget for the dress and accessories, and search online or in magazines for style ideas. Consider similar dresses in stores but order online to save money. Bring the dress when choosing matching accessories, and keep your style choice secret until the big day to surprise others. Be sure the dress is not too tight, revealing, or inappropriate for the formal occasion.
한국 표준(?) 자바셋(Java 1.6+Spring 3.x+MyBatis)과 Monolithic 아키텍처를 사용하고 있었던 제 조직 내에서 기술적 변화를 이끌어가는 것에 관련된 내용입니다.
변화를 유도하기 위해서 어떻게 해야 하는지가 핵심이며,
Architecture, Frontend, Backend, 방법론/프로세스의 영역을 각각의 단계로 나누어서 Phase1을 수행한 것과 Phase2를 수행 중인 내용에 대해서도 다룹니다.
Phase1
- Architecture : Frontend / Backend 명시적 분리
- Frontend : Angular.js, Grunt, Bower 도입
- Backend : Java 1.7/Spring4, ORM 도입
- 방법론/프로세스 : Scrum, Git
Phase2
- Architecture : Micro-Service Architecture(MSA)
- Frontend : Content Router, E2E Test
- Backend : Polyglot, Multi-Framework
- 방법론/프로세스 : Scrum+JIRA, Git Branch Policy, Pair Programming, Code Workshop
상업적 이용 및 출처없는 무단전재를 금합니다.
애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)
애자일의 스크럼, XP에 대한 기본적인 소개와 스크럼 팀 안에서 테스트 역할자로써 사용자 스토리 리뷰, 테스트 설계, 짝 테스트, 테스트 자동화 등에 대한 내용을 사례 기반으로 소개하고 있습니다.
『이펙티브 디버깅』 - 디버깅 지옥에서 탈출하는 66가지 전략과 기법복연 이
『이펙티브 디버깅』 디버깅 지옥에서 탈출하는 66가지 전략과 기법
디오미디스 스피넬리스 지음 | 남기혁 옮김 | 한빛미디어 | 24,000원
★ 소프트웨어의 완성은 디버깅!
이 책은 경험이 풍부한 개발자를 대상으로 소프트웨어를 완성하는 마지막 기술을 가르친다. 저자는 35년 경험에서 깨우친 일반 원칙, 높은 수준의 전략, 구체적인 기술에 관한 조언, 효율 높은 도구, 창의적인 기법, 효과적인 디버깅과 관련된 행동 특성을 제시한다. 저자가 제안하는 66개의 전문 기법을 통해 디버깅 역량을 확장하고, 각 문제 상황에 맞는 최상의 접근법을 선택할 수 있을 것이다.
★ 주요 내용
다양한 소프트웨어 장애를 해결하는 높은 수준의 전략과 방법
프로그래밍, 컴파일, 실행 시 적용할 구체적인 기법
디버거를 최대한 활용하는 방법
믿고 투자해도 좋은 범용 기술과 도구
막다른 길과 복잡한 미궁에서 탈출하는 첨단 아이디어와 기법
디버깅하기 쉬운 프로그램을 만들기 위한 조언
멀티스레딩, 비동기, 임베디드 코드 디버깅에 특화된 접근법
향상된 소프트웨어 설계, 구축, 관리를 통한 버그 회피법
한국 표준(?) 자바셋(Java 1.6+Spring 3.x+MyBatis)과 Monolithic 아키텍처를 사용하고 있었던 제 조직 내에서 기술적 변화를 이끌어가는 것에 관련된 내용입니다.
변화를 유도하기 위해서 어떻게 해야 하는지가 핵심이며,
Architecture, Frontend, Backend, 방법론/프로세스의 영역을 각각의 단계로 나누어서 Phase1을 수행한 것과 Phase2를 수행 중인 내용에 대해서도 다룹니다.
Phase1
- Architecture : Frontend / Backend 명시적 분리
- Frontend : Angular.js, Grunt, Bower 도입
- Backend : Java 1.7/Spring4, ORM 도입
- 방법론/프로세스 : Scrum, Git
Phase2
- Architecture : Micro-Service Architecture(MSA)
- Frontend : Content Router, E2E Test
- Backend : Polyglot, Multi-Framework
- 방법론/프로세스 : Scrum+JIRA, Git Branch Policy, Pair Programming, Code Workshop
상업적 이용 및 출처없는 무단전재를 금합니다.
애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)
애자일의 스크럼, XP에 대한 기본적인 소개와 스크럼 팀 안에서 테스트 역할자로써 사용자 스토리 리뷰, 테스트 설계, 짝 테스트, 테스트 자동화 등에 대한 내용을 사례 기반으로 소개하고 있습니다.
『이펙티브 디버깅』 - 디버깅 지옥에서 탈출하는 66가지 전략과 기법복연 이
『이펙티브 디버깅』 디버깅 지옥에서 탈출하는 66가지 전략과 기법
디오미디스 스피넬리스 지음 | 남기혁 옮김 | 한빛미디어 | 24,000원
★ 소프트웨어의 완성은 디버깅!
이 책은 경험이 풍부한 개발자를 대상으로 소프트웨어를 완성하는 마지막 기술을 가르친다. 저자는 35년 경험에서 깨우친 일반 원칙, 높은 수준의 전략, 구체적인 기술에 관한 조언, 효율 높은 도구, 창의적인 기법, 효과적인 디버깅과 관련된 행동 특성을 제시한다. 저자가 제안하는 66개의 전문 기법을 통해 디버깅 역량을 확장하고, 각 문제 상황에 맞는 최상의 접근법을 선택할 수 있을 것이다.
★ 주요 내용
다양한 소프트웨어 장애를 해결하는 높은 수준의 전략과 방법
프로그래밍, 컴파일, 실행 시 적용할 구체적인 기법
디버거를 최대한 활용하는 방법
믿고 투자해도 좋은 범용 기술과 도구
막다른 길과 복잡한 미궁에서 탈출하는 첨단 아이디어와 기법
디버깅하기 쉬운 프로그램을 만들기 위한 조언
멀티스레딩, 비동기, 임베디드 코드 디버깅에 특화된 접근법
향상된 소프트웨어 설계, 구축, 관리를 통한 버그 회피법
- 애자일 선언문의 원칙들
- 애자일의 오해
- 스크럼(Scrum)
- User Story
- Estimation
- XP(eXtreme Programming)
- XP Practice #1 – TDD와 테스트 자동화
- XP Practice #2 – Refactoring, CI
- 애자일 사례 소개
The document summarizes a tiger team project for an exercise management application. The team includes four members and their project manager. The project overview introduces the Android-based app that uses GPS, Google Maps and SQLite to help users plan exercises by providing consumed calories and time. Technical issues addressed working with GPS and using SQLite for the database. Design considerations covered using Agile and Waterfall methods, the development schedule, and plans to improve the app by adding distance tracking, more maintainable code, a network database, and saving map images.
1. Design document
Content
1. 선택한 design method
2. design architecture
3. risks
1. 선택한 design method – Agile method & waterfall model
●왜 Agile method를 선택했나?
1. 짧은 개발기간
- 한 학기동안의 개발기간, 다른 과목들과의 병행으로 인한 개발 집중 시간 부족
- 팀원들 모두가 android application 개발은 처음이였기 때문에 android app 개발을 공부할 시간
이 추가적으로 필요했음.
2. Implementation First and, maintainable code Second
- 코드의 maintenance에 집중하기 보다는 일단은 빠른 구현이 중요했음
●왜 waterfall model을 선택했나?
1. 완벽한 업무 분배
- 팀원들이 모두 수업시간이 각각 다르고 같은 공간에 시간을 정하여 모이기 어려운 관계로 업무
분배를 확실히 하여 자신의 파트를 완성한 후에 완성된 코드를 합치는 형태의 작업을 했다
- UI 작업완료
- database 적용
- GPS 구현
- 마지막 database 적용
이러한 순서로 일을 진행했고, 각 작업들은 완벽하게 분리하여 작업했고 마지막에 완성된 코드를
합쳤다.
2. design architecture
본 팀의 시스템을 한 눈에 알아보기 쉽도록 design architecture를 만들어 보았다.
2-1. use case
2-2. activity diagram
2-3. sequence diagram
2-4. state diagram
2. 2-1. use case
2-2. activity diagram
register
Edit profile
Show exercise
record
Start exercise
3. 2-3. sequence diagram
<Edit User Information - Sequence diagram>
Edit User Information - Tabular description
Actors User, Data Base
Description Change User information from database.
If user’s weight or Inch is reduced or increased, we should
use this function.
Data User Information( weight, Inch), Password, etc ….
Stimulus Edit button, User Input(weight, Inch)
Response Confirmation about updating DataBase or not
Comments We should use this function sincerely and honestly.
Then we can check change of our body, and we can plan
exercise correctly.
Message(Fail)
Message(OK)
OK
Error (Type, storage
error etc..)
Store(User info)
Check(Fail)
Check(Ok)
Uqdate(User info)
Edit( )
Check(password)
Fail
Authorization
(Password)
User
Information
Data Base
4. < Show User’s Record >
show user’s menual – table description
Show Menu
Actors User, DBS
Description
Display user’s record about past exercise.
If users want to check previous exercise record or want to
make better exercise plan, then We have to pass this function.
Data User’s information about previous exercise
Stimulus User record button, Correct User information
Response Show user’s previous exercise information
Comments
It can help users who want to establish better exercise plan.
Also it helps to check user’s previous exercise information
5. Start exercise – table description
Start Exercise
Actors User, DBS
Description
When user starts exercise, this mode is excuted automatically. In this
function, we can know the time (that we spend in exercise), the
way(that we exercised until now)
Data - (Nothing)
Stimulus Exercise start button
Response Show current exercise information
Comments
Users can check current exercise information, like distance and time.
So we can manage our exercise more effieciently.
6. 2-4. state diagram
3. risks
처음 개발을 진행하기 전, design을 할 때 고려했던 risk들 이다. 이러한 risk들을 예상했고, 그에
대한 대비책을 마련했었지만 발생했던 risk도 있었고 발생하지 않은 risk도 있었다.
7. 실제로 발생한 risk
1. 짧은 개발기간
미리 준비해두었던 solution대로 documentation에 집중하기 보다는 개발과 android study에 더
많은 시간을 투자했다. 먼저 개발 prototype을 내고 난 후, 조금씩 수정을 거쳤다.
2. 적은 인원의 개발자
적은 인원이 참여한다는 risk에 대비하여 job을 나누지 않고 함께 모여서 개발을 진행하겠다는 대
안을 세웠었지만, 실제로 solution대로 진행을 하다보니 여러가지 환경적 문제들이 발생했다. 따라
서 다시 계획을 세워 job을 철저하게 나누면서 waterfall process model을 적용함으로써 개발 시
간을 단축시키고 환경적 제약사항들을 극복할 수 있었다.
3. 새로운 버전의 안드로이드 시스템 등장
본 시스템 개발을 착수하기 이전에 tomcat을 이용하여 외부 서버와 android application을 통신하
는 과제를 수행할 적에, android 높은 버전에서 구현이 어려웠던 문제가 발생했다. 따라서 본 팀
에서는 외부 서버를 이용하는 대신, android 상에서 직접 제공하는 내부 database인 SQLite를 사
용함으로써 버전이 맞지 않아 발생하는 문제에 대응할 수 있었다.
본 팀이 SQLite를 사용한 이유는, 시스템의 특성상, 사용자의 운동 기록 정보를 핸드폰 외부에서
access하여 열람할 가능성이 거의 희박하기 때문에 SQLite를 사용하여도 시스템 상에 전혀 문제
가 발생하지 않을 것이라고 판단하여 SQLite를 사용하기로 결정하였다.
실제로 발생하지 않은 risk
1. 팀 멤버의 휴학
다행히 어느 누구도 휴학을 하지 않아서 project를 효율적으로 진행할 수 있었다.