This document contains summaries of key steps in developing a cooking assistant application. It includes sections on project overview, development environment, schedule, task assignments, use case modeling, user requirements definition, and benchmarking of other similar applications. The development schedule table shows tasks planned across April and May, including information gathering, use case modeling, class modeling, database and controller design, and implementation.
Урок 32 для 10-11 класу (Модуль "Веб-технолгії") - Проектна діяльність. Розби...VsimPPT
Завантаження доступне на https://vsimpptx.com
-------
Урок 32 для 10-11 класу (Модуль "Веб-технолгії") - Проектна діяльність. Розбиття на групи. Вибір теми проекту. Розробка плану проекту.
위 자료는 BOAZ 2016 하반기 프로젝트 주제의 하나로, Advanced 정규세션 동안 Base 정규세션에서 배웠던 다양한 이론들과 기본 지식들, 그리고 툴 활용능력들을 직접 실행하며 진행한 결과물입니다.
*** 워드임베딩과 인공신경망을 이용한 개인 맞춤형 레시피 추천 ***
추천 시스템의 Cold start Problem에 대처하기 위해, 대량의 레시피 텍스트로부터 각 레시피의 특징을 추출하고 이를 인공신경망에 매핑하여 복잡미묘한 입맛의 선호를 예측, 봇 인터페이스를 통해 피드백을 받는 Online learning 형태의 추천 시스템을 제안함.
6기 김성동 숭실대학교 경영학부
6기 김수연 동덕여자대학교 정보통계학과
6기 노우영 한양대학교 ERICA 응용수학과
6기 박소영 건국대학교 응용통계학과
6기 박소현 연세대학교 응용통계학과
6기 이지원 고려대학교 통계학과
** 국내 최초 대학생 빅데이터 연합동아리 BOAZ **
Blog : http://BOAZbigdata.com
Facebook : http://fb.com/BOAZbigdata
『크리스 크로퍼드의 인터랙티브 스토리텔링』 맛보기복연 이
크리스 크로퍼드 저/최향숙 역 | 한빛미디어 | 2015년 11월 | 22,000원
게임 개발자 회의(GDC) 창립자가 들려주는 인터랙티브 스토리텔링
1980년대부터 다양한 게임을 제작해온 크리스 크로퍼드는 스토리의 중요성에 매료되어 20년 넘게 인터랙티브 스토리텔링을 연구하며 대중화에 앞장서왔다. 이 책은 그의 모든 노하우와 가장 최근의 성과를 집대성한 것으로, 진정한 인터랙티브 스토리텔링에 대한 고찰부터, 이를 위한 사고의 전환, 올바로 구현하기 위한 추상화와 수학적 설계 기법, 플레이어의 자유의지와 작가가 의도한 운명 사이의 균형잡기 등에 관한 실용적 지침을 담았다.
Урок 32 для 10-11 класу (Модуль "Веб-технолгії") - Проектна діяльність. Розби...VsimPPT
Завантаження доступне на https://vsimpptx.com
-------
Урок 32 для 10-11 класу (Модуль "Веб-технолгії") - Проектна діяльність. Розбиття на групи. Вибір теми проекту. Розробка плану проекту.
위 자료는 BOAZ 2016 하반기 프로젝트 주제의 하나로, Advanced 정규세션 동안 Base 정규세션에서 배웠던 다양한 이론들과 기본 지식들, 그리고 툴 활용능력들을 직접 실행하며 진행한 결과물입니다.
*** 워드임베딩과 인공신경망을 이용한 개인 맞춤형 레시피 추천 ***
추천 시스템의 Cold start Problem에 대처하기 위해, 대량의 레시피 텍스트로부터 각 레시피의 특징을 추출하고 이를 인공신경망에 매핑하여 복잡미묘한 입맛의 선호를 예측, 봇 인터페이스를 통해 피드백을 받는 Online learning 형태의 추천 시스템을 제안함.
6기 김성동 숭실대학교 경영학부
6기 김수연 동덕여자대학교 정보통계학과
6기 노우영 한양대학교 ERICA 응용수학과
6기 박소영 건국대학교 응용통계학과
6기 박소현 연세대학교 응용통계학과
6기 이지원 고려대학교 통계학과
** 국내 최초 대학생 빅데이터 연합동아리 BOAZ **
Blog : http://BOAZbigdata.com
Facebook : http://fb.com/BOAZbigdata
『크리스 크로퍼드의 인터랙티브 스토리텔링』 맛보기복연 이
크리스 크로퍼드 저/최향숙 역 | 한빛미디어 | 2015년 11월 | 22,000원
게임 개발자 회의(GDC) 창립자가 들려주는 인터랙티브 스토리텔링
1980년대부터 다양한 게임을 제작해온 크리스 크로퍼드는 스토리의 중요성에 매료되어 20년 넘게 인터랙티브 스토리텔링을 연구하며 대중화에 앞장서왔다. 이 책은 그의 모든 노하우와 가장 최근의 성과를 집대성한 것으로, 진정한 인터랙티브 스토리텔링에 대한 고찰부터, 이를 위한 사고의 전환, 올바로 구현하기 위한 추상화와 수학적 설계 기법, 플레이어의 자유의지와 작가가 의도한 운명 사이의 균형잡기 등에 관한 실용적 지침을 담았다.
울산풀싸롱『◑◐』 삼산풀싸롱 O1O-7189-1243 시즌3 예약/가격정보
울산풀싸롱『◑◐』 삼산풀싸롱 O1O-7189-1243 시즌3 예약/가격정보
울산풀싸롱『◑◐』 삼산풀싸롱 O1O-7189-1243 시즌3 예약/가격정보
울산풀싸롱『◑◐』 삼산풀싸롱 O1O-7189-1243 시즌3 예약/가격정보
울산풀싸롱『◑◐』 삼산풀싸롱 O1O-7189-1243 시즌3 예약/가격정보
울산풀싸롱『◑◐』 삼산풀싸롱 O1O-7189-1243 시즌3 예약/가격정보
Teleri were estranged
울산풀싸롱『◑◐』 삼산풀싸롱시즌7 ▣ ulsan7.com ▣
'; thus his part ends with the actual rec-Teleri. Another new element in this section is the 울산풀싸롱『◑◐』 삼산동풀싸롱시즌7 ▣ ulsan7.com ▣ idea that the ThreeTelerian Ilkorinsbeing th 울산풀싸롱『◑◐』 삼산동풀싸롱시즌7 ▣ ulsan7.com ▣ e language of those that in the end wouldTelperi
울산풀싸롱『◑◐』 삼산동풀싸롱시즌7 ▣ ulsan7.com ▣
onas also of NinqueloteKulurienand Malinalda. The namesThangorodrim clearly represent the Encircling Mountains 울산풀싸롱 ◑◐』 삼산동풀싸롱시즌7 ▣ ulsan7.com ▣Thango 울산풀싸롱『◑◐』 삼산동풀싸롱시즌7 ▣ ulsan7.com ▣ rodrim until the Battle of Unnumbered
Tearswhen heThangorodrim is sho 울산풀싸롱『◑◐』 삼산동풀싸롱시즌7 ▣ ulsan7.com ▣ wn on map V as a pointset slightly outThangorodrim. Thunder and lightning 울산풀싸롱『◑◐』 삼산동풀싸롱시즌7 ▣ ulsan7.com ▣. Beren lies dying before theThargelion. The Dwarf-cities are in AB
울산풀싸롱『◑◐』 삼산동풀싸롱시즌7 ▣ ulsan7.com ▣
II still placed 'farThat he composed it while at the University of Leeds is certainbut I 울산풀싸롱『◑◐』 삼산동풀싸롱시즌7 ▣ ulsan7.com ▣ That the 울산풀싸롱『◑◐』 삼산동풀싸롱시즌7 ▣ ulsan7.com ▣ Ambarkanta is later than the Quenta (perhaps byThat the 울산풀싸롱『◑◐』 삼산동풀싸롱시즌7 ▣ ulsan7.com ▣ Gods were ferried on an island by Osse and the Oarni at the timeThe Silmarils 울산풀싸롱『◑◐』 삼산동풀싸롱시즌7 ▣ ulsan7.com ▣ are Eorclanstanas (also treated as an Old En-The 울산풀싸롱『◑◐』 삼산동풀싸롱시즌7 ▣ ulsan7.com ▣ earliest Annals of Beleriand ('AB') are themselvesThe queens of the Valar were VardaManwe's 울산풀싸롱『◑◐』 삼산동풀싸롱시즌7 ▣ ulsan7.com ▣ spouseand울산 놀만한곳 삼산 놀만한곳/울산풀싸롱/삼산풀싸롱/풀싸롱/울산풀싸롱/삼산풀싸롱/풀싸롱/울산풀싸롱/울산접대/삼산동풀싸롱/삼산동하드코어/삼산동북창동식/울산매직미러/울산모임/풀싸롱/울산놀이터/울산소녀시대/울산갤러리/울산가라오케/울산노래방/삼산동노래방/삼산동가라오케/삼산
도서 "시골빵집에서 자본론을 굽다"를 읽고, 회사 동료들과 나누기 위해 인상 깊은 내용을 발표 형식으로 정리한 것입니다.
재미있게 읽은 책인지라 더 많은 사람이 읽어봤으면 하는 마음에 만든 자료입니다.
발표자료에 사용한 이미지나 문장에 문제가 있을시 blpark@incourage.kr로 연락주시면 즉시 조치토록하겠습니다.
Unit testing, everyone talks about it and wants to do it but never gets around to actually start testing. Complex spaghetti code and time / budget pressures are often the reasons why nobody dives in and gets started with testing. But when the application breaks, and people loose money or worse it's often too late.
In this talk I will take you on a journey with real examples that will show you how you can set up your tests, how to test complex situations with legacy spaghetti code, test web services, database interactions and how to gradually build a solid foundation to safeguard the core code base and everything around it.
Don't you want to be confident when you walk out the office?
This workshop is a hands-on training where a real Zend Framework application is used as an example to start improving QA using tools to test, document and perform software metric calculations to indicate where the software can be improved. I also explain the reports produced by a CI system.
Why React Native as a Strategic Advantage for Startup Innovation.pdfayushiqss
Do you know that React Native is being increasingly adopted by startups as well as big companies in the mobile app development industry? Big names like Facebook, Instagram, and Pinterest have already integrated this robust open-source framework.
In fact, according to a report by Statista, the number of React Native developers has been steadily increasing over the years, reaching an estimated 1.9 million by the end of 2024. This means that the demand for this framework in the job market has been growing making it a valuable skill.
But what makes React Native so popular for mobile application development? It offers excellent cross-platform capabilities among other benefits. This way, with React Native, developers can write code once and run it on both iOS and Android devices thus saving time and resources leading to shorter development cycles hence faster time-to-market for your app.
Let’s take the example of a startup, which wanted to release their app on both iOS and Android at once. Through the use of React Native they managed to create an app and bring it into the market within a very short period. This helped them gain an advantage over their competitors because they had access to a large user base who were able to generate revenue quickly for them.
A Comprehensive Look at Generative AI in Retail App Testing.pdfkalichargn70th171
Traditional software testing methods are being challenged in retail, where customer expectations and technological advancements continually shape the landscape. Enter generative AI—a transformative subset of artificial intelligence technologies poised to revolutionize software testing.
Quarkus Hidden and Forbidden ExtensionsMax Andersen
Quarkus has a vast extension ecosystem and is known for its subsonic and subatomic feature set. Some of these features are not as well known, and some extensions are less talked about, but that does not make them less interesting - quite the opposite.
Come join this talk to see some tips and tricks for using Quarkus and some of the lesser known features, extensions and development techniques.
Software Engineering, Software Consulting, Tech Lead.
Spring Boot, Spring Cloud, Spring Core, Spring JDBC, Spring Security,
Spring Transaction, Spring MVC,
Log4j, REST/SOAP WEB-SERVICES.
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns
Unlocking Business Potential: Tailored Technology Solutions by Prosigns
Discover how Prosigns, a leading technology solutions provider, partners with businesses to drive innovation and success. Our presentation showcases our comprehensive range of services, including custom software development, web and mobile app development, AI & ML solutions, blockchain integration, DevOps services, and Microsoft Dynamics 365 support.
Custom Software Development: Prosigns specializes in creating bespoke software solutions that cater to your unique business needs. Our team of experts works closely with you to understand your requirements and deliver tailor-made software that enhances efficiency and drives growth.
Web and Mobile App Development: From responsive websites to intuitive mobile applications, Prosigns develops cutting-edge solutions that engage users and deliver seamless experiences across devices.
AI & ML Solutions: Harnessing the power of Artificial Intelligence and Machine Learning, Prosigns provides smart solutions that automate processes, provide valuable insights, and drive informed decision-making.
Blockchain Integration: Prosigns offers comprehensive blockchain solutions, including development, integration, and consulting services, enabling businesses to leverage blockchain technology for enhanced security, transparency, and efficiency.
DevOps Services: Prosigns' DevOps services streamline development and operations processes, ensuring faster and more reliable software delivery through automation and continuous integration.
Microsoft Dynamics 365 Support: Prosigns provides comprehensive support and maintenance services for Microsoft Dynamics 365, ensuring your system is always up-to-date, secure, and running smoothly.
Learn how our collaborative approach and dedication to excellence help businesses achieve their goals and stay ahead in today's digital landscape. From concept to deployment, Prosigns is your trusted partner for transforming ideas into reality and unlocking the full potential of your business.
Join us on a journey of innovation and growth. Let's partner for success with Prosigns.
How Recreation Management Software Can Streamline Your Operations.pptxwottaspaceseo
Recreation management software streamlines operations by automating key tasks such as scheduling, registration, and payment processing, reducing manual workload and errors. It provides centralized management of facilities, classes, and events, ensuring efficient resource allocation and facility usage. The software offers user-friendly online portals for easy access to bookings and program information, enhancing customer experience. Real-time reporting and data analytics deliver insights into attendance and preferences, aiding in strategic decision-making. Additionally, effective communication tools keep participants and staff informed with timely updates. Overall, recreation management software enhances efficiency, improves service delivery, and boosts customer satisfaction.
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar
The European Union Agency for Law Enforcement Cooperation (Europol) has suffered an alleged data breach after a notorious threat actor claimed to have exfiltrated data from its systems. Infamous data leaker IntelBroker posted on the even more infamous BreachForums hacking forum, saying that Europol suffered a data breach this month.
The alleged breach affected Europol agencies CCSE, EC3, Europol Platform for Experts, Law Enforcement Forum, and SIRIUS. Infiltration of these entities can disrupt ongoing investigations and compromise sensitive intelligence shared among international law enforcement agencies.
However, this is neither the first nor the last activity of IntekBroker. We have compiled for you what happened in the last few days. To track such hacker activities on dark web sources like hacker forums, private Telegram channels, and other hidden platforms where cyber threats often originate, you can check SOCRadar’s Dark Web News.
Stay Informed on Threat Actors’ Activity on the Dark Web with SOCRadar!
Enhancing Research Orchestration Capabilities at ORNL.pdfGlobus
Cross-facility research orchestration comes with ever-changing constraints regarding the availability and suitability of various compute and data resources. In short, a flexible data and processing fabric is needed to enable the dynamic redirection of data and compute tasks throughout the lifecycle of an experiment. In this talk, we illustrate how we easily leveraged Globus services to instrument the ACE research testbed at the Oak Ridge Leadership Computing Facility with flexible data and task orchestration capabilities.
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Shahin Sheidaei
Games are powerful teaching tools, fostering hands-on engagement and fun. But they require careful consideration to succeed. Join me to explore factors in running and selecting games, ensuring they serve as effective teaching tools. Learn to maintain focus on learning objectives while playing, and how to measure the ROI of gaming in education. Discover strategies for pitching gaming to leadership. This session offers insights, tips, and examples for coaches, team leads, and enterprise leaders seeking to teach from simple to complex concepts.
How to Position Your Globus Data Portal for Success Ten Good PracticesGlobus
Science gateways allow science and engineering communities to access shared data, software, computing services, and instruments. Science gateways have gained a lot of traction in the last twenty years, as evidenced by projects such as the Science Gateways Community Institute (SGCI) and the Center of Excellence on Science Gateways (SGX3) in the US, The Australian Research Data Commons (ARDC) and its platforms in Australia, and the projects around Virtual Research Environments in Europe. A few mature frameworks have evolved with their different strengths and foci and have been taken up by a larger community such as the Globus Data Portal, Hubzero, Tapis, and Galaxy. However, even when gateways are built on successful frameworks, they continue to face the challenges of ongoing maintenance costs and how to meet the ever-expanding needs of the community they serve with enhanced features. It is not uncommon that gateways with compelling use cases are nonetheless unable to get past the prototype phase and become a full production service, or if they do, they don't survive more than a couple of years. While there is no guaranteed pathway to success, it seems likely that for any gateway there is a need for a strong community and/or solid funding streams to create and sustain its success. With over twenty years of examples to draw from, this presentation goes into detail for ten factors common to successful and enduring gateways that effectively serve as best practices for any new or developing gateway.
Listen to the keynote address and hear about the latest developments from Rachana Ananthakrishnan and Ian Foster who review the updates to the Globus Platform and Service, and the relevance of Globus to the scientific community as an automation platform to accelerate scientific discovery.
Strategies for Successful Data Migration Tools.pptxvarshanayak241
Data migration is a complex but essential task for organizations aiming to modernize their IT infrastructure and leverage new technologies. By understanding common challenges and implementing these strategies, businesses can achieve a successful migration with minimal disruption. Data Migration Tool like Ask On Data play a pivotal role in this journey, offering features that streamline the process, ensure data integrity, and maintain security. With the right approach and tools, organizations can turn the challenge of data migration into an opportunity for growth and innovation.
Your Digital Assistant.
Making complex approach simple. Straightforward process saves time. No more waiting to connect with people that matter to you. Safety first is not a cliché - Securely protect information in cloud storage to prevent any third party from accessing data.
Would you rather make your visitors feel burdened by making them wait? Or choose VizMan for a stress-free experience? VizMan is an automated visitor management system that works for any industries not limited to factories, societies, government institutes, and warehouses. A new age contactless way of logging information of visitors, employees, packages, and vehicles. VizMan is a digital logbook so it deters unnecessary use of paper or space since there is no requirement of bundles of registers that is left to collect dust in a corner of a room. Visitor’s essential details, helps in scheduling meetings for visitors and employees, and assists in supervising the attendance of the employees. With VizMan, visitors don’t need to wait for hours in long queues. VizMan handles visitors with the value they deserve because we know time is important to you.
Feasible Features
One Subscription, Four Modules – Admin, Employee, Receptionist, and Gatekeeper ensures confidentiality and prevents data from being manipulated
User Friendly – can be easily used on Android, iOS, and Web Interface
Multiple Accessibility – Log in through any device from any place at any time
One app for all industries – a Visitor Management System that works for any organisation.
Stress-free Sign-up
Visitor is registered and checked-in by the Receptionist
Host gets a notification, where they opt to Approve the meeting
Host notifies the Receptionist of the end of the meeting
Visitor is checked-out by the Receptionist
Host enters notes and remarks of the meeting
Customizable Components
Scheduling Meetings – Host can invite visitors for meetings and also approve, reject and reschedule meetings
Single/Bulk invites – Invitations can be sent individually to a visitor or collectively to many visitors
VIP Visitors – Additional security of data for VIP visitors to avoid misuse of information
Courier Management – Keeps a check on deliveries like commodities being delivered in and out of establishments
Alerts & Notifications – Get notified on SMS, email, and application
Parking Management – Manage availability of parking space
Individual log-in – Every user has their own log-in id
Visitor/Meeting Analytics – Evaluate notes and remarks of the meeting stored in the system
Visitor Management System is a secure and user friendly database manager that records, filters, tracks the visitors to your organization.
"Secure Your Premises with VizMan (VMS) – Get It Now"
We describe the deployment and use of Globus Compute for remote computation. This content is aimed at researchers who wish to compute on remote resources using a unified programming interface, as well as system administrators who will deploy and operate Globus Compute services on their research computing infrastructure.
Designing for Privacy in Amazon Web ServicesKrzysztofKkol1
Data privacy is one of the most critical issues that businesses face. This presentation shares insights on the principles and best practices for ensuring the resilience and security of your workload.
Drawing on a real-life project from the HR industry, the various challenges will be demonstrated: data protection, self-healing, business continuity, security, and transparency of data processing. This systematized approach allowed to create a secure AWS cloud infrastructure that not only met strict compliance rules but also exceeded the client's expectations.
Modern design is crucial in today's digital environment, and this is especially true for SharePoint intranets. The design of these digital hubs is critical to user engagement and productivity enhancement. They are the cornerstone of internal collaboration and interaction within enterprises.
9. 벤치마킹 Survey
28
18
4
18
1 0
30
25
20
15
10
5
0
요리를 할 때 겪는 어려움
메뉴선정
식재료구입
재정상태
요리법을 잘
몰라서
기타
없음
10. 벤치마킹 Survey
요리도우미에게 제공받고 싶은 서비스
49%
17%
10%
20%
4%
요리법제공
대신장보기
음식메뉴선정
영양소/열량계산
기타
11. 벤치마킹 Web Site & Application
벤치마킹 대상 벤치마킹 기능
다나와 가격대 검색,배송지 변경, 배송예약, 기본배송지
지마켓 회원로그인, 아이디 저장, 기본 배송지 수정
롯데마트 비회원로그인,주문 배송 조회, 배송지 관리
이마트 가까운 배송 지 찾기, 배송정보 조회
미즈쿡 요리 카테고리, 음식정보, 요리법제공,댓 글,레시피 추가
메뉴판 닷컴 음식정보 목록, 재료정보, , 구매/소유 재료 체크, 체크리스트,
계량정보, 별 점,
만개의 레시피 회원가입,요리법 제공, 별 점, 요리카테고리
오마이 쉐프 아이디/비밀번호 찾기,재료정보
12. 회원
로그인
요구사항 정의서
기본
서비스
특화기능
회원가입
요리
추천
요리정보
제공
사용자
레시피
추가
레시피
정보
Stop watch 기능
14. UseCase 다이어그램
사용자
회원가입
음식 명으로
검색
음식추천받기
재료를 입력하여
검색
가격대 검색
음식정보
등록
조리과정조회
재료등록
조리과정등록
로그인
<<extends>>
<<include>>
15. UseCase 정의서
유즈케이스 정의서(UC001)
시스템명 요조숙녀 작성일자 2014.04.30 페이지 1/1
UseCase 명 음식추천받기 작성자 김대곤
3.1 Main Flows
1. 사용자는 음식 추천 받기를 요청한다.
2. 시스템은 사용자에게 키워드(N-1) 입력을 요청한다.
3. 사용자는 키워드를 입력하고 음식 추천 받기를 요청한다(A-1)(E-1).
4. 시스템은 음식 검색 결과를 사용자에게 보여주고 Use Case를 종료한다.
3.2 Alternative Flows
A-1. 검색결과가 존재하지 않은 경우
1. “검색결과가 존재하지 않습니다. 다시 입력해주세요.” 라는 메시지를 보여준다.
-> Main Flow의 2번으로
4. Note
N-1. 키워드 : 기분, 상태 등
3.3 Exception Flows
E-1. 사용자가 키워드 입력을 하지 않고 창을 닫은 경우
->Use Case를 종료한다.
16. UseCase 정의서
유즈케이스 정의서(UC002)
시스템명 요조숙녀 작성일자 2014.04.30 페이지 1/1
UseCase 명 음식정보등록 작성자 장성봉
3.1 Main Flows
1. 사용자는 음식정보 등록을 요청한다.
2. 시스템은 사용자에게 음식정보(N-1), 조리정보(N-2) 입력을 요청한다.
3. 사용자는 음식정보, 조리정보를 입력한다. (E-1)
4. 사용자는 조리과정 등록하기를 요청한다.
5. 시스템은 사용자에게 조리과정 등록정보(N-3) 입력을 요청한다.
6. 사용자는 조리과정 등록정보를 입력하고 완료를 선택한다(A-1).
7. 사용자는 재료 등록하기를 요청한다.
8. 시스템은 사용자에게 재료정보(N-4) 입력을 요청한다.
9. 사용자는 재료정보를 입력하고 재료 등록하기를 선택한다.
10. 시스템은 성공적으로 재료를 등록하고 Use Case를 종료한다.
3.2 Alternative Flows
A-1. 사용자가 등록을 선택한 경우
-> Main Flow의 5번으로
4. Note
N-1. 음식정보 : 음식이름, 음식칼로리, 음식사진(경로), 음식소개
N-2. 조리정보 : 조리시간, 분량, 난이도, 총 재료개수, 조리팁
N-3. 조리과정 등록정보 : 단계시간(초), 사진경로, 설명
N-4. 재료정보 : 재료명, 수량
28. 레시피등록
레시피등록
음식 정보
음 식 이 름 :
음 식 칼 로 리 :
음 식 사 진 (경로)
음 식 :소 개 :
조리 정보
조 리 시 간 :
분 량 :
난 이 도 :
총 재 료 개 수 :
조 리 팁 :
kcal
sec
인분
개
사진가져오기
조리과정등록하기 재료등록하기 레시피등록하기 돌아가기
42. SequenceDiagram(레시피등록 )
RegiserDBController RecipeInfo CookingCourseList FoodRecipeInfoList FoodDAO RecipeDAO RecipeCourseDAO RecipeIngredientDAO RecipeIngredientDTO
sd데이터베이스 저장
sd for문
sd for문
23 : addFoodRecipeInfo(foodRecipeInfo:FoodRecipeInfo)
<<create>>
24
25 : insert()
26 : disconnect()
<<create>>
27
28 : insert()
29 : CookingCourseList := getCookingCourseList()
30 : Collection<CookingCourse>:=getCookingCourseList()
<<create>>
31
32 : insert()
33 : disconnect()
<<create>>
34
35 : Collection<RecipeIngreInfo>:=getRecipeIngreInfoList()
36 : RecipeIngredientDTO := selectMaxRecipeIngredientCode()
37 : int := getRecipeIngredientCode()
38 : insert()
39 : disconnect()
23번, static 클래스(음식조리정보리스트)에 저장
36번, 37번 가장 낮은 음식코드 불러온다.
레시피 등록 버튼 리스너
RecipeInputListener
레시피 정보 조리과정목록 음식조리정보리스트 음식 DAO 조리법 DAO 조리과정DAO 조리재료 DAO 조리재료 DTO
21 : register()
43. : 사용자
음식추천받기UI 음식추천받기 리스너 음식추천받기 콘트롤러 음식조리법정보리스트 음식정보 및 사진 출력리스너
음식정보 및 사진
콘트롤러
TodayEatUI TodayActionListener TodayController FoodRecipreInfoList PhtoActionListener PhotoController FoodInfoUI
1 : 본인의기분 또는 날씨 등을 입력 후 검색 요청()
2 : void := actionPerformed(e:ActionEvent)
3 : showResult()
<<create>>
4
5 : Collection<FoodRecipeInfo> := verifyFoodName()
조건에 맞는 음식정보, 조리법 정보를 for문을
이용하여 패널에 각종 정보를 넣기 시작
6 : Collection<FoodRecipeInfo> := searchFoodRecipeList(foodName:String)
7 : 음식 사진 클릭()
8 : void := actionPerformed(e:ActionEvent)
음식코드에 맞는 UI 생성하기
9 : moveUI()
<<create>>
10
11 : FoodRecipeInfo := searchFoodRecipeList(foodCode:String)
12 : FoodInfo := verifyFoodCode()
TodayController객체 생성시, 사용자가 입력한 검색값 중
첫번째 문자만으로 객체를 생성한다.
<<create>>
13
검색값이 존재하는 경우
14 : void := showUI()
음식정보UI
SequenceDiagram(음식추천받기 )
Editor's Notes
1. 안녕하세요. 요리하고 조리하는 숙녀들을 위한 프로그램 “요조숙녀”의 발표할 PloyMen’s의 팀입니다.
발표에 앞서 팀원 소개를 하겠습니다. 팀장 장성봉입니다. …..
지금부터 요조숙녀 프로그램에 대한 발표를 시작하도록 하겠습니다.
2. 발표는 개요, 설계, 시연 순으로 발표를 하겠습니다.
3. 먼저 “요조숙녀”프로그램에 대해서 간단히 소개하자면 “요조숙녀” 프로그램은 요리 할 때 메뉴선정/ 요리법/ 재료구매에 어려움을 겪는 사람들을 돕기 위한 프로그램입니다.
4. 요조숙녀 프로그램은 JAVA Standard edition 과 10g 기반으로 개발 되었으며, 개발 툴로 ERWIN과 StarUml, Edit plus를 이용하였습니다.
5. 다음은 “요조숙녀” 프로그램의 개발 일정입니다.
먼저 4월 2주에서 4주까지 file기반의 1차 프로젝트 개발을 진행하였으며,
5월에 9일부터 15일 까지 5일간 데이터베이스를 기반으로 프로그램 refactoring을 하였습니다.
6. 개발 업무는 보시는 것과 같이 업무총괄, 클래스 다이어그램 관리, 문서관리, 코드통합으로 분담하였습니다.
7. 프로그램 개발에 앞서, 이수 역 근처 백화점 및 시장에서 20~60대 까지의 여성을 주 대상으로 83명의 시민들에게 설문조사를 실시하였습니다.
또한 공신력 있는 사이트의 추천을 기준으로 Web site와 application을 선정하여 벤치마킹 작업을 하였습니다.
8. 설문조사 결과 총 83명의 대상들 중에서 92%(78명)가 요리를 할 때. 어려움을
겪고 있었습니다.
9. 그리고 어려움을 겪는 대상들은, 메뉴선정에 가장 어려움을 겪으며
이어서 요리법, 식 재료 구입 순으로 어려움을 겪는 것으로 조사결과가 나왔습니다.
10. 해당 조사의 결과를 바탕으로 어려움을 겪는 대상들이 요리 도우미가 있다면
실제로 어떤 서비스를 제공 받고 싶은지 조사하였습니다.
그 결과 49%가 요리법제공 서비스를 희망하였고, 20%가 음식메뉴 선정 서비스를
희망하였습니다.
저희 팀은 이 설문조사 결과를 토대로 사용자의 Needs를 확인할 수 있었습니다.
11. 설문조사 다음으로 Web Site와 Application을 대상으로 벤치마킹 작업을 하였습니다.
대상은 WebSite 6개와 Application 2개 였으며, 총 27개의 서비스 기능을 벤치마킹 하였습니다.
12. 벤치마킹을 토대로 요조숙녀 프로그램은 서비스를 크게 기본서비스와 특화서비스를 제공합니다.
로그인, 회원가입 등 6개의 서비스를 기본서비스로 제공하며, 스탑워치 기능을 특화기능으로 제공합니다.
13. 다음으로 요구사항 정의서를 토대로 명사와 동사를 키 추출하였고,
키 추출 결과에서 엑터 후보와 유즈케이스 후보를 추출하였습니다.
14. 엑터와 유즈케이스는 화면에 보이는 것과 같이 선정되었습니다.
사용자는 ‘회원가입’, ‘음식 명으로 검색’ 을 비롯한 10개의 서비스를 받을 수 있습니다.
단, 음식정보 등록과 주문내역 확인은 로그 인이 되어야만 서비스를 제공 받을 수 있습니다.
15.유즈케이스 정의서 입니다. 대표적인 유즈케이스 2개를 소개 하도록 하겠습니다.
첫번째 유즈케이스는 음식추천 받기 입니다.
1)사용자가 음식추천 받기를 요청합니다.
2)시스템의 사용자의 요청에 따라 키워드 입력을 요청합니다.
3)사용자는 키워드를 입력하고 음식추천 받기를 요청합니다.
4)시스템은 입력된 키워드에 따른 검색결과를 보여주고 유즈케이스를 종료합니다.
16. 두번쨰 유즈케이스는 음식정보 등록입니다.
1)사용자가 음식정보 등록을 요청하면, 2) 시스템은 음식정보와 조리정보입력을 요청합니다.
3)사용자는 음식정보와 조리정보를 입력하고 조리과정등록을 요청할 수 있습니다.
4)사용자가 조리과정 등록을 요청하면 5)시스템은 조리과정등록정보 입력을 요청하비다.
6) 사용자는 조리과정 등록정보를 입력하고 완료를 선택합니다.
7)조리과정 등록정보입력을 완료하면 재료를 등록할 수 있습니다.
8) 사용자가 재료등록하기를 요청하면 시스템은 재료정보입력을 요청합니다.
9) 사용자가 재료정보를 입력하고등록하기를 선택하면 시스템은 재료등록을하고 usecase를 종료합니다.
다음은 저희조의 구체적인 동.명사 추출과정에 대해 설명드리겠습니다.
해당화면은 저희조의 usecase 정의서에서 추출한 명사,동사 목록입니다. Key추출을통하여 , 750여개의 명사와 150여개의 동사를 추출하였습니다.
보시는 것처럼 음식정보와 같은 명사는 class후보로, 찾다 와 같은 동사는 목적어에 해당하는 메소드후보로 추출하였습니다.
이러한 과정을 통하여 클래스후보군과 멤버필드 후보군 메소드 후보군을 추출하였습니다.
다음으로 한글 분석단계 class 다이어그램입니다. 최종클래스 후보군을 통하여, 보시는바와 같이 총 15개의 클래스를 설계하였습니다. 최종후보군에 들어있던 음식정보 명사를 통해 음식정보 클래스를 설계하였스며, 단위,난위도와 같은 명사들은 멤버필드로 배치하였습니다.
저희조는 한글분석단계 다이어그램에서는 클래스와 멤버필드의 설계만 하였으며, 영문화 분석단계 클래스 다이어그램에서 메소드를 설계하였습니다.
다음으로 영문 분석단계 클래스 다이어그램입니다. 여기서는 가장 중요하고 기본이 되는 7개의 클래스들에 대해 설명드리겠습니다.
처음으로 memberInfo 클래스 입니다. 명사 회원을 통하여 캡슐화한 클래스로, 이름,아이디,비밀번호,주소,연락처,우편번호를 멤버필드로 배치하였습니다. 기본 정보클래스로 get/set메소드로만 구성하였습니다.
물론 이 메소드들고, 이름을 검색하다, 주소를 입력하다와 같은 추출된 동사를 통해 근거있게 배치하였습니다.
다음은 판매물품 정보를 가지고잇는 soldItemInfo클래스,판매처의 정보를 가지고있는 storeInfo클래스, 음식정보를 가지고있는 foodInfo클래스입니다.
앞서 설명은 memberInfo클래스와 같은 원리로 설계하였습니다.
다음은 1가지의 재료정보를 가지고있는 recipeIngreInfo클래스, 조리과정 한단계를 가지고있는 cookingCourse클래스입니다. 캡슐화 원리는 앞선 클래스들과 같으나, 한음식에 대해, 여러조리과정과, 여러 재료를 포함하고있는 레시피정보를 추상화하기위해, recipeInfo클래스를 설계하였습니다.
이 클래스는 여러 기본 정보필드들과 함께, 해당음식의 여러 조리단계와, 여러 재료를 캡슐화하고있습니다. 또한 이클래스는 기본정보클래스가 아니기때문에, check라는 특별한 메소드가 존재합니다. 해당메소드는 3개의 재료를 입력받아, 해당 음식 레시피에 그 재료가있으면 ,true를, 없으면 false를 리턴해주는 메소드입니다. Usecase정의서의 재료를 찾다 라는 동사를 배치한 메소드입니다.
다음으로 영문 분석단계 클래스 다이어그램입니다. 여기서는 가장 중요하고 기본이 되는 7개의 클래스들에 대해 설명드리겠습니다.
처음으로 memberInfo 클래스 입니다. 명사 회원을 통하여 캡슐화한 클래스로, 이름,아이디,비밀번호,주소,연락처,우편번호를 멤버필드로 배치하였습니다. 기본 정보클래스로 get/set메소드로만 구성하였습니다.
물론 이 메소드들고, 이름을 검색하다, 주소를 입력하다와 같은 추출된 동사를 통해 근거있게 배치하였습니다.
다음은 판매물품 정보를 가지고잇는 soldItemInfo클래스,판매처의 정보를 가지고있는 storeInfo클래스, 음식정보를 가지고있는 foodInfo클래스입니다.
앞서 설명은 memberInfo클래스와 같은 원리로 설계하였습니다.
다음은 1가지의 재료정보를 가지고있는 recipeIngreInfo클래스, 조리과정 한단계를 가지고있는 cookingCourse클래스입니다. 캡슐화 원리는 앞선 클래스들과 같으나, 한음식에 대해, 여러조리과정과, 여러 재료를 포함하고있는 레시피정보를 추상화하기위해, recipeInfo클래스를 설계하였습니다.
이 클래스는 여러 기본 정보필드들과 함께, 해당음식의 여러 조리단계와, 여러 재료를 캡슐화하고있습니다. 또한 이클래스는 기본정보클래스가 아니기때문에, check라는 특별한 메소드가 존재합니다. 해당메소드는 3개의 재료를 입력받아, 해당 음식 레시피에 그 재료가있으면 ,true를, 없으면 false를 리턴해주는 메소드입니다. Usecase정의서의 재료를 찾다 라는 동사를 배치한 메소드입니다.
다음으로 영문 분석단계 클래스 다이어그램입니다. 여기서는 가장 중요하고 기본이 되는 7개의 클래스들에 대해 설명드리겠습니다.
처음으로 memberInfo 클래스 입니다. 명사 회원을 통하여 캡슐화한 클래스로, 이름,아이디,비밀번호,주소,연락처,우편번호를 멤버필드로 배치하였습니다. 기본 정보클래스로 get/set메소드로만 구성하였습니다.
물론 이 메소드들고, 이름을 검색하다, 주소를 입력하다와 같은 추출된 동사를 통해 근거있게 배치하였습니다.
다음은 판매물품 정보를 가지고잇는 soldItemInfo클래스,판매처의 정보를 가지고있는 storeInfo클래스, 음식정보를 가지고있는 foodInfo클래스입니다.
앞서 설명은 memberInfo클래스와 같은 원리로 설계하였습니다.
다음은 1가지의 재료정보를 가지고있는 recipeIngreInfo클래스, 조리과정 한단계를 가지고있는 cookingCourse클래스입니다. 캡슐화 원리는 앞선 클래스들과 같으나, 한음식에 대해, 여러조리과정과, 여러 재료를 포함하고있는 레시피정보를 추상화하기위해, recipeInfo클래스를 설계하였습니다.
이 클래스는 여러 기본 정보필드들과 함께, 해당음식의 여러 조리단계와, 여러 재료를 캡슐화하고있습니다. 또한 이클래스는 기본정보클래스가 아니기때문에, check라는 특별한 메소드가 존재합니다. 해당메소드는 3개의 재료를 입력받아, 해당 음식 레시피에 그 재료가있으면 ,true를, 없으면 false를 리턴해주는 메소드입니다. Usecase정의서의 재료를 찾다 라는 동사를 배치한 메소드입니다.
다음으로 영문 분석단계 클래스 다이어그램입니다. 여기서는 가장 중요하고 기본이 되는 7개의 클래스들에 대해 설명드리겠습니다.
처음으로 memberInfo 클래스 입니다. 명사 회원을 통하여 캡슐화한 클래스로, 이름,아이디,비밀번호,주소,연락처,우편번호를 멤버필드로 배치하였습니다. 기본 정보클래스로 get/set메소드로만 구성하였습니다.
물론 이 메소드들고, 이름을 검색하다, 주소를 입력하다와 같은 추출된 동사를 통해 근거있게 배치하였습니다.
다음은 판매물품 정보를 가지고잇는 soldItemInfo클래스,판매처의 정보를 가지고있는 storeInfo클래스, 음식정보를 가지고있는 foodInfo클래스입니다.
앞서 설명은 memberInfo클래스와 같은 원리로 설계하였습니다.
다음은 1가지의 재료정보를 가지고있는 recipeIngreInfo클래스, 조리과정 한단계를 가지고있는 cookingCourse클래스입니다. 캡슐화 원리는 앞선 클래스들과 같으나, 한음식에 대해, 여러조리과정과, 여러 재료를 포함하고있는 레시피정보를 추상화하기위해, recipeInfo클래스를 설계하였습니다.
이 클래스는 여러 기본 정보필드들과 함께, 해당음식의 여러 조리단계와, 여러 재료를 캡슐화하고있습니다. 또한 이클래스는 기본정보클래스가 아니기때문에, check라는 특별한 메소드가 존재합니다. 해당메소드는 3개의 재료를 입력받아, 해당 음식 레시피에 그 재료가있으면 ,true를, 없으면 false를 리턴해주는 메소드입니다. Usecase정의서의 재료를 찾다 라는 동사를 배치한 메소드입니다.
다음으로 영문 분석단계 클래스 다이어그램입니다. 여기서는 가장 중요하고 기본이 되는 7개의 클래스들에 대해 설명드리겠습니다.
처음으로 memberInfo 클래스 입니다. 명사 회원을 통하여 캡슐화한 클래스로, 이름,아이디,비밀번호,주소,연락처,우편번호를 멤버필드로 배치하였습니다. 기본 정보클래스로 get/set메소드로만 구성하였습니다.
물론 이 메소드들고, 이름을 검색하다, 주소를 입력하다와 같은 추출된 동사를 통해 근거있게 배치하였습니다.
다음은 판매물품 정보를 가지고잇는 soldItemInfo클래스,판매처의 정보를 가지고있는 storeInfo클래스, 음식정보를 가지고있는 foodInfo클래스입니다.
앞서 설명은 memberInfo클래스와 같은 원리로 설계하였습니다.
다음은 1가지의 재료정보를 가지고있는 recipeIngreInfo클래스, 조리과정 한단계를 가지고있는 cookingCourse클래스입니다. 캡슐화 원리는 앞선 클래스들과 같으나, 한음식에 대해, 여러조리과정과, 여러 재료를 포함하고있는 레시피정보를 추상화하기위해, recipeInfo클래스를 설계하였습니다.
이 클래스는 여러 기본 정보필드들과 함께, 해당음식의 여러 조리단계와, 여러 재료를 캡슐화하고있습니다. 또한 이클래스는 기본정보클래스가 아니기때문에, check라는 특별한 메소드가 존재합니다. 해당메소드는 3개의 재료를 입력받아, 해당 음식 레시피에 그 재료가있으면 ,true를, 없으면 false를 리턴해주는 메소드입니다. Usecase정의서의 재료를 찾다 라는 동사를 배치한 메소드입니다.
파일설계, DB설계, MVC구조 설명을 맡은 김영한입니다.
1) CookingCourseListData 텍스트파일부터 StoreItemInfoList 파일까지 총 7개의 텍스트파일에
2) 조리과정, 음식정보, 회원정보, 요리재료정보, 요리정보, 판매처정보, 판매물품정보를 저장하도록 설계하였습니다.
FoodInfoData 파일은 .txt 파일 형식을 갖고 음식코드, 음식명, 음식소개, 음식사진, 열량의 데이터를 개행으로 구분하여 저장되어있습니다.
나머지 여섯개의 파일도 같은 형식으로 저장되어있습니다.
다음으로 DB설계에 대해서 설명 드리겠습니다.
저희는 분석단계 클래스다이어그램을 토대로 주요 entity를 결정하고 엔티티 간의 관계를 맺는 과정에서 정규화를 통해 데이터의 중복을 최소화하고 데이터의 안정성을 주었습니다. 음식을 중심으로 개체를 살펴보겠습니다. 음식은 음식분류와 레시피의 부모테이블로 음식코드를 기본키로 갖고 음식이름, 소개,사진,열량,아이디를 갖고 있습니다. 음식은 음식분류를 여러 개 갖을 수 있다고 생각하여 일대 다 관계를 맺었고 음식과 레시피의 관계에서는 하나의 음식에 하나의 레시피를 갖기 위해 일대일 관계를 맺었습니다. 그래서 음식분류와 레시피에는 음식코드를 Foreign key로 갖고 있습니다. 레시피는 조리과정과 조리재료의 부모테이블로 레시피 코드를 기본키로 갖고 음식코드, 전체 요리시간, 도움말, 난이도, 분량을 갖고 있습니다. 레시피는 조리과정을 여러 개 갖을 수도 있지만 갖지 않을 수 있다하여 일대다 관계를 맺었고 레시피와 조리재료 관계에서 레시피는 여러 조리재료를 갖을 수 있기 때문이 일대다 관계로 정했습니다.
물리적 설계에서 테이블명, 데이터 타입, 제약조건을 정했습니다.
모든 데이터는 NOT NULL제약 조건이고 FOOD _TB에 칼로리는 음수가 되지 않도록 CHECK제약 조건을 갖고 있습니다. Recipe_tb에서는 조리시간이 음수가 되지 않도록하고, recipeLevel은 ‘어려움’, ‘보통’, ‘쉬움’ 중에 하나가 입력되도록하고, 분량은 양수, foodCode는 음식테이블과 일대일 관계이기 때문에 foreign key이면서 unique 제약조건을 걸었습니다.
RecipeCourse_tb에서 CourseLevel은 양수이고, RecipeCourseTime은 음수가 되지 않도록 하고 RecipeIngredient_tb에서 재료의 수량을 양수로 했습니다.
지금부터 M . V . C 구조에 대해서 설명하겠습니다.
File으로 데이터를 읽어오는 구조 입니다.
FoodFileIo는 데이터를 파일에서 읽어와 RecipeIngreInfoListData와 CookingCourseListData를 이용해서 RecipeInfoList를 만들고 RecipeInfoList와 FoodInfoList를 이용하여 FoodRecipeInfoList에 저장하게 됩니다.
데이터베이스에서 데이터가 로딩되는 과정입니다.
RecipeIngredientDAO와 RecipeIngreInfoDTO를 이용하여 데이터베이스에서 조리재료의 데이터를 가져오고 RecipeCourseDAO와 CourseDTO를 이용하여 조리과정의 데이터를 가져오게 됩니다. 데이터베이스에서 가져온 자료들은 FoodRecipeDBmanager를 통해 static클래스인 FoodRecipeInfoList에 저장되게 됩니다. 프로그램 최초 시작 시 로딩되는 데이터로 static 리스트에 데이터를 한번에 읽어와 저장하여 데이터에 빠르게 접근할 수 있도록 했습니다.
PT순서
FoodRecipeInfo -> FoodRecipeInfoList -> TodayController -> PhotoController
1.첫 번째로 음식추천 기능입니다.
FoodRecipeInfo 클래스는 하나의 음식정보를 가지고 있는FoodInfo클래스와 그 요리에 대한 조리법을 가지고 있는 RecipeInfo클래스를 필드로 가지고 있습니다. FoodRecipeInfoList 클래스는 FoodRecipeInfo 클래스를 리스트 형태로 가지고 있는 클래스로 이전에 설명드린 데이터베이스에서 가져온 모든 음식에 대한 정보와 조리법에 대한 정보를 가지고 있는 클래스 입니다. 대부분 해당 클래스에 접근하여 데이터를 사용합니다. TodayController는 음식명을 필드로 갖고 음식조리정보에 접근하는 클래스이고, PhotoController는 음식코드값으로 음식조리정보를 찾아주는 클래스 입니다.
PT순서 FoodInfo -> RecipeInfo -> RegisterDBController -> FoodRecipeInfoList
2.두번째 레시피등록기능 입니다.
사용자가 입력한 음식정보(foodInfo)와 조리정보(RecipeInfo)를 이용하여 RegisterDBController클래스는 FoodRecipeInfoList에 추가하고, 데이터베이스에 레시피데이터를 추가합니다. 이것으로 mvc구조 설명을 마치겠습니다.
안녕하십니까? 시퀀스 다이어그램 발표를 맡은 김대곤입니다.
첫 번째 시퀀스 다이어그램은 레시피 등록입니다.
첫 번째로 레시피 등록을 위한 각종 정보 입력입니다. 8번까지의 과정을 통해 레시피 등록UI와 레시피 등록 버튼 리스너가 생성됩니다.
이후 사용자는 음식정보를 입력합니다.
음식정보는 아래와 같습니다.
다음으로 조리정보를 입력합니다.
조리정보 또한 아래와 같습니다.
마지막으로 사용자는 레시피 등록하기 버튼을 클릭하여 레시피를 등록합니다.
두 번째로, DB에 레시피 정보를 입력하겠습니다.
먼저 입력받은 레시피를 등록하는 register메소드가 호출됩니다.
이때, RegisterDBController는 레시피를 static인 음식조리정보리스트와 DB에추가하기 위한 콘트롤러입니다.
그 다음, 사용자가 입력한 음식정보와 조리정보를 static인 음식조리정보 리스트에 저장합니다.
그런 다음 음식DAO에 음식정보를,
조리법 DAO에 조리법 정보를 생성 후 DB에 입력합니다.
이후, 레시피정보 클래스와 조리과정목록 클래스에서 레시피정보, 조리과정정보를 받아온 후,
조리과정 DAO에 저장합니다. 이때 32번의 조리과정 DAO의 경우, 한 가지의 조리과정 정보만 입력하는 것이 아니므로 for문을 이용하여 여러 번 DB에 저장합니다.
35번에서는 조리재료정보목록이 저장된 RecipeIngreInfoList에서 조리재료정보목록을 반환 받습니다.
36번에서는 selectMaxRecipeIngrdientCode 메소드를 통해 조리재료 정보 중에서 가장 큰 조리재료 코드를 반환 받습니다.
38번인 조리재료의 경우도 음식 하나에 해당되는 여러가지 재료를 저장받습니다.
이것으로 첫번째 시퀀스다이어그램인 레시피 등록을 마치겠습니다.
다음 시퀀스 다이어그램은 음식 추천 받기입니다.
사용자는 먼저 본인의 기분 또는 날씨 등을 입력한 후 검색을 요청합니다.
이후 TodayActionListener를 통해 검색결과를 찾는 showResult 메소드가 실행됩니다.
음식추천받기 리스너는 TodayController를 생성하고 키워드에 맞는 음식정보목록을 가져오는 verifyFoodName메소드를 실행합니다.
TodayController는 static인 FoodRecipeInfoList에서 Data검색조건에 맞는 음식정보목록을 UI로 전달해주는 컨트롤러입니다.
그럼 사용자가 입력한 키워드 중 첫 글자가 포함된 음식목록을 FoodRecipeInfoList에서 검색하여 사용자에게 보여줍니다.
두 번째로 선택한 음식 사진의 상세설명 기능입니다.
여러 음식 중 사용자가 하나의 음식을 선택하면, PhotoActionListener의 moveUI를 통해
PhotoController가 생성됩니다. 그런 다음, 11번의 verifyFoodCode와 12번의 searchFoodRecipeList메소드가 실행됩니다.
FoodRecipeInfoList는 프로그램 내 모든 음식정보를 가지고 있는 static목록입니다. 사진 컨트롤러는 FoodRecipeInfoList에 있는 searchFoodRecipeList메소드를
실행하여 코드값과 일치하는 음식정보를 반환 받습니다.
13번, 14번의 시퀀스를 통해 반환 받은 음식정보객체를 멤버변수로 하는 음식정보 UI를 생성합니다.
그럼 이것으로 시퀀스다이어그램을 마치겠습니다. 다음 순서는 양진영 팀원이 전체 프로그램 시연 동영상을 발표하겠습니다.