클라이언트 요구사항
- 회원 속성 : 아이디(PK), 비밀번호(장바구니 FK)
- 상품 속성 : 품번(PK), 품명, 가격, 재고
- 로그인한 회원만 장바구니를 사용할 수 있습니다.
- 회원이 로그아웃을 하면 장바구니는 사라집니다.
- 요구기능
회원가입
로그인
로그아웃
상품 목록 출력 : 재고가 없는 상품에 대해서 [품절] 표시하기
장바구니에 상품 담기
장바구니에 담긴 상품 목록 출력
장바구니에 담긴 상품 목록 구매
장바구니에서 상품 빼기
노션링크
https://www.notion.so/sweetsonah/B_-e4de7c5c05474dca87cf74728f968a32?pvs=4
위 노션링크를 통해 전체 회의를 마친 후
각자 역할 분배(MVC로)를 통해 코드 작성후 취합하기로 함
| 담당파트 | 팀원 | 구현기능 | 담당페이지 |
| M(Model) | Jo | User의DTO 선언및CRUD메서드, Cart의DTO 선언및CRUD메서드 |
UserDTO, UserDAO, CartDTO, CartDAO |
| Huh | Product의DTO 선언및CRUD메서드 | ProductDTO, ProductDAO | |
| V(View) | Park | View의출력문및사용자입력값유효성검사 | MainView, LoginView, LogoutView |
| C(Controller) | Me | Model-View의메서드조합, 세부기능구현 | Controller |
| Lee | Model-View의메서드조합, 세부기능구현 | Controller(조장) |
controller 부분의 메뉴 1번(상품목록출력)과 메뉴 4번(장바구니), 메뉴 5번(로그아웃)을 맡아 작성하였다.
플로우 차트

[상품목록]
만약 1번이라면 // 상품 목록 출력(V)
selectAll을 통하여 모든 과자의 데이터(이름,재고)를 배열에 저장한다.(M)
저장한 배열을 반복하여(C)
과자메뉴 출력 및 입력(V)
만약 입력값이 0번이라면 (C)
메인 메뉴로 이동 (C)
아니라면 (C)
데이터값의 개수를 get하여 변수에 저장(M)
만약 저장한 변수가 0보다 작거나 같다면(C)
품절 출력(V)
그게 아니라면(C)
입력값 selectOne통하여 데이터 저장(M) 저장된 데이터값의 상태 출력(V)
장바구니담기,취소하기 메뉴를 출력 후 입력받기(num)(V)
만약 1번이라면(num==1) (C)
만약 User가 null이라면 (C)
2번메뉴로 이동 // 로그인 페이지(C)
그게 아니라면 (C)
장바구니(장바구니DTO)에 해당 데이터 insert(M)
만약 0번이라면(num==0) (C)
메뉴로 돌아간다(C)
[로그인]
만약 2번 메뉴라면 // 로그인(함수로 작성) (C)
로그인 안내 및 아이디(PK), 비밀번호 값(data)을 입력받기(MemberDTO) (V)
입력받은 값(PK, data)를 selectOne으로 boolean으로 가져오기 (V→M)
입력값(data)이 맞다면(true) (C)
로그인 성공 출력 (V)
아니라면(false) (C)
로그인에 실패 출력 (V)
[회원가입]
유효성 검사(아이디 중복 확인) 입력안내 및 아이디(PK)를 입력받기(memberDTO) (V)
입력받은 값(PK)을 넣어서 (V→M)
selectOne으로 PK 중복확인 (M)
만약 입력 받은 값이 없다면(memberDTO==null)(종료조건) (C)
유효성 종료 (C)
비밀번호 입력 안내 및 입력받기 (V)
확인용 비밀번호 입력안내 및 입력받기(memberDTO) (V)
만약 비밀번호와 확인용 비밀번호가 같다면 ( 아이디 비밀번호 사용자 DB에 저장 set. 가입성공 출력 (V)
아니라면(false) (C)
가입실패 출력 (V)
메뉴로 이동 (C)
[장바구니]
만약 4번 메뉴 선택 한다면 // 장바구니 전체 출력 (C)
장바구니 상태, 메뉴 뷰에서 받아오기 (V)
- 장바구니 목록 개수 설정
- 1번을 선택했다면 // 장바구니 목록 안의 개수 변경 (C)
- 모델에게 장바구니DTO를 통해 selectAll로 전체목록(AL) 받아오기 (M)
- 모델에게 전체목록 배열(AL) 받은것을 뷰에서 입력하여 전체 출력 (M→V)
- 뷰를 통해 선택값을 입력받는다 (V)
- 뷰에게 입력받은 선택값을 통해 모델에서 selectOne으로 데이터(data) 받아오기 (V→M)
- 뷰를 통해 개수(cnt)를 입력받는다 (V)
- 뷰에게 입력받은 개수(cnt)를 주어 모델에서 update를 통해 바꿔준다 (V→M)
- 만약 개수(cnt) 0을 입력받으면 // delete를 통해 제거 (V→M)
- 장바구니 목록 초기화
- 2번을 선택했다면 // 장바구니 안의 목록 초기화 (C)
- 모델에게 장바구니DTO delete를 통해 모두 제거 (M)
- 장바구니 구매하기
- 3번을 선택했다면 // 장바구니 전체 구매 (C)
- 모델에게 장바구니DTO를 통해 selectAll로 전체목록(AL) 받아오기 (M)
- 모델에게 받아온 전체목록(AL)을 통해 뷰에서 출력 받아오기 (M→V)
- 구매 확정 확인 받기 (V)
- 구매완료 멘트 (V)
- 취소하기
- 4번을 선택했다면 // 취소하기 (C)
- 메뉴로 돌아간다 (C)
[로그아웃]
만약 5번 메뉴 선택 한다면 // 로그아웃 (C)
- 저장된 현재 유저값을 null로 바꾼다 (C)
- 로그아웃 메뉴로 돌아간다 (C)
[프로그램 종료]
만약 0번 메뉴 선택 한다면 (C)
break; (C)
[순서도]
로그인
입력 → 검증 → 성공/실패 → (실패 시) 재시도/메뉴로 이동 로그아웃
로그아웃 처리 → 메인 메뉴로 이동
회원가입
아이디 입력 → 유효성 검사 → 비밀번호 입력 → 유효성 검사 → 재확인 → 완료 → 메인 메뉴로 이동
상품목록
목록 출력 → 상품 선택 → 상태 출력 → 구매/장바구니 담기/취소 → (장바구니) 로그인 여부 확인 장바구니
장바구니 목록 출력 → 항목 선택/삭제/구매하기/취소하기
작성 코드(59~143, 230~332)
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
|
package controller;
import java.util.ArrayList;
import model.CartDAO;
import model.CartDTO;
import model.ProductDAO;
import model.ProductDTO;
import model.UserDAO; // 유저 행동틀
import model.UserDTO; // 유저 생성틀
import view.LoginView; // 로그인 상황 출력문
import view.LogoutView; // 로그아웃 상황 출력문
import view.MainView; // 공통적인 출력문
public class Ctrl {
private UserDAO userDAO;
private ProductDAO productDAO;
private CartDAO cartDAO;
private MainView mainView;
private LoginView loginView;
private LogoutView logoutView;
private UserDTO user;
private final int firstCartId =1;
private int cartId;
public Ctrl() {
this.cartDAO = new CartDAO();
this.userDAO = new UserDAO();
this.productDAO = new ProductDAO();
this.mainView = new MainView();
this.loginView = new LoginView();
this.logoutView = new LogoutView();
this.user = null;
this.cartId = firstCartId;
}
public void start() {
while(true) {
// 환영인사 및 메인 메뉴 입력
int action;
mainView.printWelcomComment(); // 환영인사
mainView.printMainMenuList(); // 공통메뉴 출력
if(user == null) { // 로그아웃 상태라면,
// 로그아웃 메뉴-(v)
action = logoutView.printMainMenuList(); // 로그아웃 메뉴를 출력합니다(1번 ~ 3번)
}
else {
// 로그인 메뉴-(v)
action = loginView.printMainMenuList(); // 로그인 메뉴를 출력합니다(1번, 4번, 5번)
}
if(action==0) {
//프로그램 종료 멘트-(v)
break;
}
else if(action==1) { // 메인메뉴 1번이라면! // 상품 전체목록 출력
ProductDTO productDTO=new ProductDTO(); // 생성자
ArrayList<ProductDTO> datas=productDAO.selectAll(productDTO);// selectAll을 통하여 모든 과자의 데이터(이름,재고)를 배열에 저장한다. M
mainView.printProducts(datas); // 과자메뉴 출력 및 입력 V // 만약 저장한 변수가 0보다 작거나 같다면 품절 출력 V
int num=mainView.inputProductDetails(datas);// 상세히 볼 상품의 번호(index)
if(num == 0) {//0번 선택시 메뉴로 돌아가기
continue;
}
ProductDTO data=datas.get(num-1); // 입력받은 인덱스의 상품을 저장
mainView.printSelectedProductDetails(data);// 상품의 상세정보 출력
CartDTO cartDTO=new CartDTO(); // 카트 생성자 생성
cartDTO.setNum(data.getNum());// FK , 입력받은 값은 인덱스 값이다. // 그 인덱스의 데이터를 가져온다.
cartDTO.setCnt(1); // 처음 장바구니에 넣었을때 무조건 1개이다
System.out.println("로그 : 현재 카트 번호 "+this.cartId);
cartDTO.setCartId(this.cartId); // 카트아이디 불러온다
mainView.printSubMenuList(); // 메뉴출력 후
int menu=mainView.inputSubMenuNum();// 메뉴번호 입력받음 V
if(menu==1) { // 메뉴 1번이면, 장바구니 담기
if(user==null) { // user가 로그인 되어있지 않다면
//로그인 진행
int count =0;//로그인 시도 횟수
UserDTO data1;
while(true) {
data1 = new UserDTO(); // (새로운 사용자틀 생성)
// 아이디 비밀번호 입력
String uId = logoutView.inputMid(); // 아이디 UID(UserID) 입력
String pw = logoutView.inputPassword(); // 비밀번호 pw(pasword) 입력
data1.setUserId(uId);
data1.setPassword(pw); // data에 UID, pw 저장
data1.setCondition("LOGIN"); // 개발자 확인용_로그인
data1 = userDAO.selectOne(data1); // 로그인-(M)
System.out.println("로그인 파트 로그 끝 유저 데이터 값 : "+data1); // data값 확인용 로그
if(data1 != null) { //data가 있으면 반복 멈춤
break;
}
count++;
if(count == 3) { //기회 3번 후 실패하면 다음으로
logoutView.printFailLogin();
break;
}
}
// 반환을 저장한 공간이 없어
if(data1 != null) {
UserDTO datas2 = new UserDTO();
datas2.setUserId(data1.getUserId());
datas2.setPassword(data1.getPassword());
System.out.println("로그 : "+datas2);
if(datas2 != null) { // 로그인에 성공한 경우
user=datas2; // 로그인 상태로 변환
// 로그인 성공 멘트
logoutView.printSuccessLogin();
}
else { // 로그인에 실패한 경우
// 로그인 실패 멘트
logoutView.printFailLogin();
System.out.println("로그인 함수 파트 로그 끝 유저 데이터 값 : "+datas2); // data값 확인용 로그
}
}
}
else { // 로그인 되어 있다면
cartDTO.setUserId(user.getUserId()); // 로그인이라면 유저값 set해준다
boolean flag=cartDAO.insert(cartDTO); // 장바구니에 해당 데이터 insert
if(!flag) { // flag가 false라면
logoutView.printSelectedProduct();// 장바구니 담기 실패********
}
else { // flag가 true라면
loginView.printSelectedProduct(data);// 장바구니 담기 성공*********
cartId++; // 장바구니 pk 증가
}
}
}
else if(menu==0) { // 메뉴 0번이라면
continue; // 메뉴로 돌아간다
}
}
else if(action==2) { // 메뉴값이 2번이라면, 로그인
UserDTO data; // (새로운 사용자틀 생성)
int count =0; //로그인 시도 횟수
while(true) {
// 아이디 비밀번호 입력
data = new UserDTO();
String uId = logoutView.inputMid(); // 아이디 UID(UserID) 입력
String pw = logoutView.inputPassword(); // 비밀번호 pw(pasword) 입력
System.out.println("로그 : data : "+data);
data.setUserId(uId);
System.out.println("로그 : data "+data);
data.setPassword(pw); // data에 UID, pw 저장
data.setCondition("LOGIN"); // 개발자 확인용_로그인
System.out.println("로그인 파트 로그 끝 유저 데이터 값 : "+data); // data값 확인용 로그
data = userDAO.selectOne(data); // 로그인-(M)
if(data != null) { // data에 저장된 데이터가 있다면 반복문 중단
break;
}
count++; // 로그인 횟수 증가
if(count==3) { // 횟수 3번으로 제한
logoutView.printFailLogin(); // 로그인실패 출력
break;
}
}
// 반환을 저장한 공간이 없어
if(data!=null) {
UserDTO datas = new UserDTO(); //저장공간
datas.setUserId(data.getUserId()); // 아이디 저장
datas.setPassword(data.getPassword());// 비밀번호 저장
System.out.println("로그 : "+datas);
if(datas != null) { // 로그인에 성공한 경우
user=datas; // 로그인 상태로 변환
// 로그인 성공 멘트
logoutView.printSuccessLogin();
}
else { // 로그인에 실패한 경우
// 로그인 실패 멘트
logoutView.printFailLogin();
System.out.println("로그인 함수 파트 로그 끝 유저 데이터 값 : "+datas); // data값 확인용 로그
}
}
}
else if(action==3) { // 메뉴값이 3번이라면, 회원가입
UserDTO data = new UserDTO(); // (새로운 사용자틀 생성)
while(true) { // 아이디 중복 유효성 검사
String UID = logoutView.inputMid(); // 아이디 UID(UserID) 입력
System.out.println("회원가입 파트 로그 시작 유저 데이터 값 : "+data); // data값 확인용 로그
data.setUserId(UID); // 아이디 UID(UserID)를 data에 저장
data.setCondition("IS_ID"); // 개11발자 확인용_중복 확인
data=userDAO.selectOne(data); // 아이디 중복확인
// 아이디가 중복되면 null
// 아이디가 중복되지 않으면 아이디가 저장된 data 반환
if(data != null) { //
break; // 중복되지 않는다면 반복을 중단하고 id가 저장된 data를 반환
}
}
///////////////////////////////////////////////////////////
UserDTO datas = new UserDTO(); // (새로운 사용자틀 생성)
// UserDAO ud = new UserDAO(); // (사용자 행동틀 생성)
//비밀번호 입력받기
//확인용 비밀번호 입력받기
String checkPw= logoutView.inputPasswordMatch();
datas.setUserId(data.getUserId());
datas.setPassword(checkPw);
boolean flag = false; // insert의 값을 받기 위한 boolean
flag = userDAO.insert(datas); // datas에 회원정보 입력
if(flag) { // 만약 입력이 성공하면
//user data 넣었으니까 -> 로그인
logoutView.printSccessSignup(); // 성공을 출력
}
else { // 입력이 실패하면
logoutView.printFailSignup(); // 실패를 출력
}
System.out.println("회원가입 파트 로그 끝 유저 데이터 값 : "+datas); // data값 확인용 로그
continue; // 회원가입에 모든 실행 이후 메뉴로 돌아가기
}
else if(action==4) { // 메인메뉴 4번이라면! // 장바구니 전체 출력
CartDTO cartDTO=new CartDTO(); // 생성자 생성후
ProductDTO productDTO=new ProductDTO();
ArrayList<ProductDTO> productDatas=productDAO.selectAll(productDTO);// 모델에게 장바구니DTO를 통해 selectAll로 전체목록(AL) 받아오기
ArrayList<CartDTO> cartDatas=cartDAO.selectAll(cartDTO);// 모델에게 카트DTO를 통해 selectAll로 전체목록(AL) 받아오기
if(cartDatas.size()<=0) { // 카트DTO 받아온게 하나도 없으면
loginView.cartEmpty();
continue; // 메인메뉴로 다시돌아감
}
loginView.printCartProductList(cartDatas, productDatas); // 두 받아온값을 뷰에게 넘겨줘서 비교후 장바구니 목록 출력
loginView.printCartMenuList();// 장바구니 상태, 메뉴 뷰에서 받아와서 입력값받기 V
int num=loginView.intputCartMenuNum();
if(num==1) { // 1번을 선택했다면 // 장바구니 목록 안의 개수 변경 (C)
// > 수량이 0개로 바꾸면 장바구니 목록에서 삭제 - DEL_ONE 으로 삭제
// 사용자 입력 허용 : cartPK(1) 과 datas.size()(cart의 개수)+cartPK 사이면 허용
System.out.println("로그 : 장바구니에 담긴 상품의 개수" +cartId);
int cartNum=loginView.intputCartProductNum(firstCartId, cartId); // 유효성검사를 위한 코드
// cartNum == 장바구니의 번호
System.out.println("로그 : 장바구니 번호 "+cartNum);
int cnt=loginView.intputCartProductNewNum(); // 카트 수량변경 입력받아서 cnt에 저장하기
System.out.println("로그 : 변경할 수량 "+cnt );
CartDTO data=new CartDTO();
data.setCartId(cartNum); // cartNum번째 장바구니 목록 저장
data.setCnt(cnt); // 바꾸고싶은 수량 입력받은 것 저장해서
if(cnt<=0) { // 만약 cnt입력값이 0이라면
data.setCondition("DEl_ONE"); // > 수량이 0개로 바꾸면 장바구니 목록에서 삭제 - DEL_ONE 으로 삭제
boolean flag=cartDAO.delete(data);
if(flag) {
loginView.printCartCntZero(); // 0이되어 삭제했다고 출력
}
}
boolean flag=cartDAO.update(data); // m으로 넘겨줘서 update로 수량 변경하기
if(!flag) { // flag가 false라면
loginView.printCartNewNumfail();// 개수 변경 실패
}
else { // flag가 true라면
loginView.printCartNewNumScucess();// 개수 변경 성공
}
}
else if(num==2) { // 2번을 선택했다면 // 장바구니 목록 초기화
CartDTO data=new CartDTO(); // 생성자 생성후
data.setUserId(this.user.getUserId()); // 현재 유저아이디를 받아서 모델에게 넘겨준 후
data.setCondition("DEL_ALL");
boolean flag=cartDAO.delete(data); // delete를 통하여 전체삭제
if(!flag) { // flag가 false라면
loginView.printCartRemoveITemfail();// 초기화 실패
}
else { // flag가 true라면
loginView.printCartRemoveItemScucess();// 초기화 성공
}
}
else if(num==3) { // 3번을 선택했다면 // 장바구니 전체 구매
loginView.printCartTotalPrice(cartDatas, productDatas);// 장바구니 아까 넘긴데이터 전체가격 뷰한테 계산해서 받아오기
ProductDTO changeStock=new ProductDTO(); // 새로운 생성자 생성
for(int i=0;i<cartDatas.size();i++) { // 저장된 카트배열만큼 비교해서
changeStock.setNum(cartDatas.get(i).getNum()); // FK값과
changeStock.setStock(cartDatas.get(i).getCnt()); // 카트의 수량을 생성자에 전부 받아올거야
boolean flag=productDAO.update(changeStock);// 받아온값을 삭제
if(flag) {
}
}
// 이걸 상품 재고랑 비교해서 각각 빼줄거야
loginView.printCartBuyScucess(); // 구매완료 멘트
CartDTO data=new CartDTO(); // 새로운 생성자 생성
data.setUserId(user.getUserId()); // 현재 로그인 되어있는 사용자의 아이디 받아와서 생성자에설정하고
data.setCondition("DEL_ALL"); // 전체삭제 컨디션 설정
System.out.println("로그 : data : "+data);
boolean flag=cartDAO.delete(data); // delete를 통하여 전체삭제
if(flag) {
mainView.resTrue();
}
}
else if(num==4) { // 4번을 선택했다면 // 취소하기
continue; // 메뉴로 돌아간다
}
}
else if(action==5) {//로그아웃
CartDTO cartDTO=new CartDTO(); // 생성자 생성
cartDTO.setUserId(user.getUserId()); // 현재 로그인되어있는 USERID PK값 SET
cartDTO.setCondition("DEL_ALL"); // 컨디션 전체 삭제로 설정후
boolean flag = cartDAO.delete(cartDTO); // 전체 삭제
if(flag) {
mainView.resTrue();
}
user= null; // 후 USER 비운 후에
continue; // 메인메뉴로 돌아간다
}
}
}
}
|
cs |
발표내용
로그아웃,로그인 메뉴로 나눠서 입력값을 각각 받을 수 있게 유효성검사를 두번 진행
0번( action )을 입력하면 프로그램 종료
1번( action )을 입력하면 상품 전체 목록
sellectAll로 상품 전체 데이터 받아온 후 View에게 보내고 출력값 받아옴
그 후 상품번호를 입력받고 새로운 변수에 저장
새로운 데이터변수에 상품의 새로운 변수-1번째의 인덱스를 저장
저장한 데이터를 뷰에게 넘겨줘서 상세정보를 출력
그리고 장바구니에담기와 상품전체출력이 연관성이 있다 생각되어
상품전체출력의 세부메뉴로 설정
카트 생성자를 생성하고 현재 상세번호 출력한 데이터의 PK값인 상품번호를
생성한 생성자에 FK 값으로 저장하고 수량은 1개로 저장, 카트번호는 처음 설정했던 값으로 저장
그 후 메뉴 입력다시 받음
1번( menu )을 입력하면 장바구니 담기
user==null이면 로그인진행
user!=null이면 userId pk값을 장바구니에 생성자 FK값으로 저장
그 후 insert로 장바구니에 추가 한 후 장바구니 pk 1개 증가
0번( menu )을 입력하면 메인메뉴로 다시 이동
4번( action )을 입력하면 장바구니 메뉴
카트DTO와 장바구니 DTO를 생성후 sellectAll로 각각 데이터로 받아온 후
각 데이터 View에게 넘겨줘서 장바구니 상품 전체 출력
그 후 메뉴 입력받음
1번( menu )을 입력 받으면 개수 변경
장바구니 번호를 입력받으면 유효성 검사 후
변경하고 싶은 수량을 입력받아 생성자를 생성후 저장
0으로 입력받았다면 해당 데이터 delete
아니라면 update를 통해 해당 수량 변경
2번( menu )을 입력받으면 장바구니 목록 초기화
생성자 생성 후 현재 유저PK값과 컨디션 저장해주고
delete로 전체삭제
3번( menu )을 입력받으면 전체구매
생성자 생성 후 카트배열에 있는 상품의 PK값과 수량 받아와서 update를 통해 재고에서 뺀다
그 후 구매완료 문구 출력 후
userId와 컨디션 저장후 delete로 전체 삭제
4번( menu )을 입력받으면 메인메뉴로 다시이동
5번( action )을 입력받으면 로그아웃
생성자 생성 후 현재 userId와 컨디션 저장 후 delete로 전체 삭제
user=null로 바꿔줘서 로그아웃상태로 바꾸고
메인메뉴로 돌아감
조별 피드백
유지보수 용이 어필하기
- 모델에서 쓰지않는 CRUD를 private으로 바꿔주어 다음 추가할 사항 있으면
public으로 바꿔서 보수에 용이해진다
발표하는 내용에 대한 개념 숙지하기
- 발표 내용의 개념을 확실히 이해하고 발표
전반적으로 답변 디펜스가 아쉬움
- 질문을 이해하지 못한 경우, 질문이 이해될때까지 재질문을 해야함
- 그 후 질문에 알맞은 답변으로 질문자의 이해를 도와야함
전체 피드백
프로젝트를 피피티화 할때 말 어미를 통일
이렇게,저렇게 등과 같은 애매한 발표는 하지말것(멘트 신경써줘야 함)
그렇기에 대본이 꼭 필요하다
발표 시작시 이름소개
끝날시 이름소개
두번 이름을 소개해서 청중에게 자기자신에 대한 각인을 시켜줌
말끝을 흐리지 말고 정확히 끝내줘야 함
말은 천천히해야 전달력이높아짐
발표순서를 맞춰주는게 좋음
코드를 처음보는 사람의 이해를 위해 주석은 꽉꽉채워넣어야함
소감
한글코딩을 더 자세히 쓰면서 파트분배가 더 용이해진것을 보고
코딩의 기본이 되는 한글코딩을 더 생각할 수 있는 기회가 됨
개선할 사항
- 기본적인 틀에 대한 논의가 부족하여 코딩을 작성하면서 변수명이 조금씩 달랐지만 회의를 통한 빠른 대처로 해결
- MVC 설계과정에서 한글코딩을 통한 코드분배가 익숙하지 않았지만 MVC를 이해하며 더 나은 코딩 설계과정을 수립
- 기획일정을 정하는 과정에서 알맞은 분배가 되지 못한 점이 아쉬웠지만 국비교육을 통한 수업과 경험으로 이런 실수없는 더 나은 개발자가 되도록 노력
'JAVA > JAVA' 카테고리의 다른 글
| [JAVA] 08. 예외처리, 스레드 (1) | 2024.07.24 |
|---|---|
| [JAVA] 07. condition, 코드의 응집도 및 결합도 (0) | 2024.07.18 |
| [JAVA] 06. MVC 패턴 (0) | 2024.07.16 |
| [JAVA] 05. 컬렉션 - 배열리스트, 맵 (4) | 2024.07.16 |
| [JAVA] 04. 캡슐화, 추상화, 인터페이스 (0) | 2024.07.12 |