메시지는 송신 객체가 수신 객체에게 수신 객체가 가진 서비스를 요청하는거잖아요?(메시지에는 보통 오퍼레이션+인자 쓰고)
그럼 1번 메시지의 경우는 orderFood는 사용자가 갖고 있는거 아닌가요? Server 객체가 가진 메서드가 아니잖아요
댓글 42
?
백갤러 1(121.130)2024-11-08 13:43
답글
뭔 말이 하고 싶은거에요? 시퀀스 다이어그램이 잘못됐다는거임?
지금 시퀀스는 맞잖아요?
설명도 손님이 orderFood 했다고 하는데
백갤러 1(121.130)2024-11-08 13:45
답글
server가 orderFood라는 메서드 가지고 있으면
서버라는 역할 관점에서 좀 이상하지 않나요
익명(39.116)2024-11-08 13:50
답글
좀 잘못 알고 계신 거 같은데
저렇게 그려져 있으면 고객.orderFood 인거에요 메서드의 리턴을 요청하는거지 메서드를 요청하는게 아닙니다
백갤러 1(121.130)2024-11-08 13:54
답글
시퀀스 다이어그램이 잘못된거 아니에요?
손님이 orderFood 했다는거는 orderFood가 server한테 있어야ㅜ하는건데 orderFood 메서드는 손님 객체가 가지고 있어야 맞잖아요
익명(39.116)2024-11-08 13:54
답글
? 메서드의 리턴은 따로 점선화살표로 표기하지 않나요
익명(39.116)2024-11-08 13:55
답글
손님이 orderFood 메서드를 server한테 보낸겁니다 메세지를.. 서버가 return이 있다면 바로 점선으로 return을 했겠지만 그 안에서 또 server는
chef한테 demandFood를 보낸거고요 그렇게해서 최종 결과가 return 된거죠
시퀀스 다이어그램을 보기전에 객체 간 소통하는거에 대해 다시 생각해보셔야 할 거 같은데요
백갤러 1(121.130)2024-11-08 13:58
답글
손님이 orderFood 메서드를 server한테 보낸겁니다
라는게 server.orderFood 잖아요
저 화살표는 메시지라인 의미하는거로 아는데
제 메시지랑 메시지라인에 대한 정보가 틀린건가요?
익명(39.116)2024-11-08 13:59
답글
니 말이 맞음
국내도서 보지마라 예제 병신 투성이임
로버트 마틴 ㄱㄱ
백갤러 2(175.223)2024-11-08 14:01
답글
지금 손님이 orderFood 했다는거는 orderFood가 server한테 있어야ㅜ하는건데 orderFood 메서드는 손님 객체가 가지고 있어야 맞잖아요
이 말 자체가 이해가 안되는게 손님이 orderFood 했다는 것은 orderFood가 server한테 있어야 하는건데가 무슨 말인가요?
지금 한 문장에서 님이 한 말을 님이 반박하고 있어요 손님이 orderFood 했다는 것은 손님에게 메서드가 있는건데 왜 server한테 있어야 한다고 하시는거죠?
백갤러 1(121.130)2024-11-08 14:02
답글
server.orderFood는 메세지를 보낸게 아니라 서버 객체한테 묻는다고 표현하고,
c1ustomer.orderFood(server) 가 server에게 보냈다고 표현합니다
백갤러 1(121.130)2024-11-08 14:04
답글
아니 서버입장에서
음식을 주문하진 않잖아요?
orderFood라는 오퍼레이션은 음식을 주문한다는건데
그럼 고객 객체가 갖고 있는게 맞지 않냐는거죠
메시지라인대로면 손님이 서버한테 orderFood 메서드를 요청한건데 서버한테 orderFood 있다는게 설계 관점에서 말이 안된다는거죠 반박을 하고 있는게 아니라
익명(39.116)2024-11-08 14:05
답글
아니 그러니까 저 시퀀스 다이어그램 그려진거 자체가 c1ustomer.orderFood가 맞다구요..
백갤러 1(121.130)2024-11-08 14:06
답글
server.orderFood는 메세지를 보낸게 아니라 서버 객체한테 묻는다고 표현하고,
c1ustomer.orderFood(server) 가 server에게 보냈다고 표현합니다
그런건가요? 더 공부해야겠네요 책에선 저렇게 설명하던데
익명(39.116)2024-11-08 14:06
답글
A객체 내에서가 이제 객체
백갤러 1(121.130)2024-11-08 14:11
답글
제가 배운 예시는
A 객체 내의 메서드에서 B 객체의 메서드를 호출하는거만 배웠는데 이 경우는 메시지를 보낸다고 표현할 수 있나요?
익명(39.116)2024-11-08 14:14
답글
이게 저도 제 말이 정답이라는 건 아니고 오브젝트나 그런 서적을 베이스로 말씀을 드리자면a.someMethod() 는 a에게 someMethod()를 통해 어떤 대답을 묻는거에요a.someMethod() { this.b} 라면 A, B객체가 참조중이니 B객체한테 물을 필요없이 자기 자신에게 물으면 되겠죠? 시퀀스에서는 이러면 자기한테 메세지를 날렸다고 표현합니다.메서드에 파라미터로 b를 줘야 b에게 메세지를 날렸다고 볼 수 있죠b에게 묻는 것은 b.someMethod() 입니다
백갤러 1(121.130)2024-11-08 14:21
답글
저 시퀀스를 예시로보면
c1ustomer.orderFood(serve) {
serve.demandFood(chef);
}
겠죠? 이러면 orderFood로 인해 serve demandFood를 요청한거니 orderFood 메시지를 serve에게 보내 demandFood가 동작했다고 볼 수 있죠
백갤러 1(121.130)2024-11-08 14:24
답글
선생님께서 알고 계신 메시지에 대한 정의가 어떻게 되시나요?
일단 선생님 말씀 통해 찾아본 결과 메시지는 객체들이 상호작용 하는 모든 것을 포함하는 개념이라는 측면도 있는 것을 확인했습니다.
근데 제가 배운 메시지 형태는 책들이 전부 수신객체.오퍼레이션() 형태로 보낸다고 배웠거든요?
이게 아무래도 분석, 설계다보니 정답이 없는 문제인걸까요?
익명(39.116)2024-11-08 14:29
답글
의문이 든게 어떻게 보면 uml은 문법이 정해져있는건데
측면에 따라 표현 방식이 달라지면 문제 아닌지..
익명(39.116)2024-11-08 14:38
답글
수신객체.오퍼레이션()으로 메시지 보낸다는 그거를 좀 알려주시겠어요?
일단 시퀀스에서
c1ustomer가 sender고 server receiver인데 sender가 메시지를 보낸거 자체가 orderFood이거든요?
수신객체.오퍼레이션()이 뭔 말인지를 모르겠어서
백갤러 1(121.130)2024-11-08 14:39
답글
사진 두장 첨부했어요!
익명(39.116)2024-11-08 14:42
답글
3짤만 봐도 제가 설명드린대로 a.someMethod(b) 로 메시지를 보내준다고 되어 있잖아요..?
백갤러 1(121.130)2024-11-08 14:43
답글
네 근데
저 개념을 전제로 했다면 uml 메시지 라인으로 생각하면
메시지라인에 orderFood가 써있고 고객->서버로 돼있으면
server.orderFood()를 하게 된거 아닌가요?
제가 개빡대가리라 이해가 안되는건지
익명(39.116)2024-11-08 14:50
답글
지금 orderFood를 오퍼레이션이라고 생각하시는데 그게 아니라
orderFood를 메시지를 보내서 server.demandeFood('c')를 한거라구요.. 즉
orderFood가 메시지이고 그 안에
{
server.demandFood('c')가 있는거에요..
}
백갤러 1(121.130)2024-11-08 14:59
답글
그렇게 되면 첫번째 사잔에서
orderFood 자리에 demandeFood가 있어야 하는게
맞는거 아닌가요?
orderFood는 액터에서 메시지요청하고
백갤러 2(175.223)2024-11-08 15:02
답글
아니죠 메시지가 담고 있는 오퍼레이션이 server.demandFood() 잖아요? 지금 생각이 이미 그쪽으로 고착되셔서 그런거 같은데 산책 함 하시거나 내일 한번 다시 봐보세요 orderFood()가 오퍼레이션이 아니라 메시지이고 그 안에 serve.demandFood('c')를 담고 있는거에요 추가해주신 사진과 시퀀스를 다시 한번 잘 생각해보셔요
백갤러 1(121.130)2024-11-08 15:04
답글
하.. 그런거 같네요 ㅆㅂ 병신 붙잡고 설명해주셔서 감사합니다 복기 다시 해볼게요
백갤러 4(211.253)2024-11-08 15:05
답글
아닙니다잉 계속 도돌이표 한거 같은데 이해하신거 같아서 다행입니다. 저도 뭐 무시하고 이런게 아니라 그냥 말한거라 혹시 기분 상하셨으면 사과드립니다
백갤러 1(121.130)2024-11-08 15:08
답글
저 죄송한데 마지막 예제는
시퀀스랑 코드가 잘 맞나요?
백갤러 4(211.253)2024-11-08 15:08
답글
원래 uml이 젤 어려운건가요
과목 중에 젤 어려운거 같네요;;
uml 표기법은 정해져있다지만
설계가 정답도 없는 문제인거 같고
백갤러 4(211.253)2024-11-08 15:10
답글
네 마지막도 맞아요 결국 Actor가 clear 메시지를 보내면 treeMap.clear()가 동작하는데 treeMap을 하려면 Actor가 treeMap을 알거나 받아야겠죠?
actor.clear(treeMap) 을 통해 treeMap에게 clear라는 메시지를 보냈고 treeMap은 treeMap.clear(topNode) 라는 clear 오퍼레이션을 실행한거죠
백갤러 1(121.130)2024-11-08 15:11
답글
그렇군요 답변 감사합니다
메시지가 뭔 느낌인지 약간 감이 올거같아요
복기해보겠습니다 귀한 시간 내주셔서 감사합니다
백갤러 4(211.253)2024-11-08 15:14
답글
어 근데 저 소스코드에선 클리어 메서드에 매개변수가 없는데 걍 생략된건가요?
백갤러 4(211.253)2024-11-08 15:16
답글
넵 그렇겠죠 ? 근데 결국 treeMap.clear()를 하려면 어떤 객체가 만들어져서 clear든 clean이는 fresh든 보내줘야겠죠?
백갤러 1(121.130)2024-11-08 15:22
답글
그리고 아까 말했듯이 topNode를 treeMap이 알고 있으니까 변수 전달없이 그냥 topNode = null이 된거에요 TopNode 객체한테 메시지를 보내줄 필요가 없는거죠
백갤러 1(121.130)2024-11-08 15:24
답글
네... 감사합니다 ㅠㅠ
백갤러 4(211.253)2024-11-08 15:29
누가 이 돌대가리한테 책 추천했냐 - dc App
차에코푼쌧키(host0274)2024-11-08 13:53
답글
이유 설명도 못 하시면서 뭔 돌대가리 ㅇㅈㄹ임ㅋㅋ
여기서 니가 젤 저능아같던데
익명(39.116)2024-11-08 13:55
답글
이새끼는 알려주는건 없이 비방만 하니까 욕을 먹는거지 ㅋㅋㅋㅋ
익명(hheee)2024-11-08 14:31
이딴거에 목숨걸지마라 시퀀스 그렇게 중요한거아님 그냥 흐름이 request response를 어떻게 참조하고 어떻게 반환한지
지금 니가 모른다고 크게 문제없슴 저 시퀀스 현업에서 못본것같음
?
뭔 말이 하고 싶은거에요? 시퀀스 다이어그램이 잘못됐다는거임? 지금 시퀀스는 맞잖아요? 설명도 손님이 orderFood 했다고 하는데
server가 orderFood라는 메서드 가지고 있으면 서버라는 역할 관점에서 좀 이상하지 않나요
좀 잘못 알고 계신 거 같은데 저렇게 그려져 있으면 고객.orderFood 인거에요 메서드의 리턴을 요청하는거지 메서드를 요청하는게 아닙니다
시퀀스 다이어그램이 잘못된거 아니에요? 손님이 orderFood 했다는거는 orderFood가 server한테 있어야ㅜ하는건데 orderFood 메서드는 손님 객체가 가지고 있어야 맞잖아요
? 메서드의 리턴은 따로 점선화살표로 표기하지 않나요
손님이 orderFood 메서드를 server한테 보낸겁니다 메세지를.. 서버가 return이 있다면 바로 점선으로 return을 했겠지만 그 안에서 또 server는 chef한테 demandFood를 보낸거고요 그렇게해서 최종 결과가 return 된거죠 시퀀스 다이어그램을 보기전에 객체 간 소통하는거에 대해 다시 생각해보셔야 할 거 같은데요
손님이 orderFood 메서드를 server한테 보낸겁니다 라는게 server.orderFood 잖아요 저 화살표는 메시지라인 의미하는거로 아는데 제 메시지랑 메시지라인에 대한 정보가 틀린건가요?
니 말이 맞음 국내도서 보지마라 예제 병신 투성이임 로버트 마틴 ㄱㄱ
지금 손님이 orderFood 했다는거는 orderFood가 server한테 있어야ㅜ하는건데 orderFood 메서드는 손님 객체가 가지고 있어야 맞잖아요 이 말 자체가 이해가 안되는게 손님이 orderFood 했다는 것은 orderFood가 server한테 있어야 하는건데가 무슨 말인가요? 지금 한 문장에서 님이 한 말을 님이 반박하고 있어요 손님이 orderFood 했다는 것은 손님에게 메서드가 있는건데 왜 server한테 있어야 한다고 하시는거죠?
server.orderFood는 메세지를 보낸게 아니라 서버 객체한테 묻는다고 표현하고, c1ustomer.orderFood(server) 가 server에게 보냈다고 표현합니다
아니 서버입장에서 음식을 주문하진 않잖아요? orderFood라는 오퍼레이션은 음식을 주문한다는건데 그럼 고객 객체가 갖고 있는게 맞지 않냐는거죠 메시지라인대로면 손님이 서버한테 orderFood 메서드를 요청한건데 서버한테 orderFood 있다는게 설계 관점에서 말이 안된다는거죠 반박을 하고 있는게 아니라
아니 그러니까 저 시퀀스 다이어그램 그려진거 자체가 c1ustomer.orderFood가 맞다구요..
server.orderFood는 메세지를 보낸게 아니라 서버 객체한테 묻는다고 표현하고, c1ustomer.orderFood(server) 가 server에게 보냈다고 표현합니다 그런건가요? 더 공부해야겠네요 책에선 저렇게 설명하던데
A객체 내에서가 이제 객체
제가 배운 예시는 A 객체 내의 메서드에서 B 객체의 메서드를 호출하는거만 배웠는데 이 경우는 메시지를 보낸다고 표현할 수 있나요?
이게 저도 제 말이 정답이라는 건 아니고 오브젝트나 그런 서적을 베이스로 말씀을 드리자면a.someMethod() 는 a에게 someMethod()를 통해 어떤 대답을 묻는거에요a.someMethod() { this.b} 라면 A, B객체가 참조중이니 B객체한테 물을 필요없이 자기 자신에게 물으면 되겠죠? 시퀀스에서는 이러면 자기한테 메세지를 날렸다고 표현합니다.메서드에 파라미터로 b를 줘야 b에게 메세지를 날렸다고 볼 수 있죠b에게 묻는 것은 b.someMethod() 입니다
저 시퀀스를 예시로보면 c1ustomer.orderFood(serve) { serve.demandFood(chef); } 겠죠? 이러면 orderFood로 인해 serve demandFood를 요청한거니 orderFood 메시지를 serve에게 보내 demandFood가 동작했다고 볼 수 있죠
선생님께서 알고 계신 메시지에 대한 정의가 어떻게 되시나요? 일단 선생님 말씀 통해 찾아본 결과 메시지는 객체들이 상호작용 하는 모든 것을 포함하는 개념이라는 측면도 있는 것을 확인했습니다. 근데 제가 배운 메시지 형태는 책들이 전부 수신객체.오퍼레이션() 형태로 보낸다고 배웠거든요? 이게 아무래도 분석, 설계다보니 정답이 없는 문제인걸까요?
의문이 든게 어떻게 보면 uml은 문법이 정해져있는건데 측면에 따라 표현 방식이 달라지면 문제 아닌지..
수신객체.오퍼레이션()으로 메시지 보낸다는 그거를 좀 알려주시겠어요? 일단 시퀀스에서 c1ustomer가 sender고 server receiver인데 sender가 메시지를 보낸거 자체가 orderFood이거든요? 수신객체.오퍼레이션()이 뭔 말인지를 모르겠어서
사진 두장 첨부했어요!
3짤만 봐도 제가 설명드린대로 a.someMethod(b) 로 메시지를 보내준다고 되어 있잖아요..?
네 근데 저 개념을 전제로 했다면 uml 메시지 라인으로 생각하면 메시지라인에 orderFood가 써있고 고객->서버로 돼있으면 server.orderFood()를 하게 된거 아닌가요? 제가 개빡대가리라 이해가 안되는건지
지금 orderFood를 오퍼레이션이라고 생각하시는데 그게 아니라 orderFood를 메시지를 보내서 server.demandeFood('c')를 한거라구요.. 즉 orderFood가 메시지이고 그 안에 { server.demandFood('c')가 있는거에요.. }
그렇게 되면 첫번째 사잔에서 orderFood 자리에 demandeFood가 있어야 하는게 맞는거 아닌가요? orderFood는 액터에서 메시지요청하고
아니죠 메시지가 담고 있는 오퍼레이션이 server.demandFood() 잖아요? 지금 생각이 이미 그쪽으로 고착되셔서 그런거 같은데 산책 함 하시거나 내일 한번 다시 봐보세요 orderFood()가 오퍼레이션이 아니라 메시지이고 그 안에 serve.demandFood('c')를 담고 있는거에요 추가해주신 사진과 시퀀스를 다시 한번 잘 생각해보셔요
하.. 그런거 같네요 ㅆㅂ 병신 붙잡고 설명해주셔서 감사합니다 복기 다시 해볼게요
아닙니다잉 계속 도돌이표 한거 같은데 이해하신거 같아서 다행입니다. 저도 뭐 무시하고 이런게 아니라 그냥 말한거라 혹시 기분 상하셨으면 사과드립니다
저 죄송한데 마지막 예제는 시퀀스랑 코드가 잘 맞나요?
원래 uml이 젤 어려운건가요 과목 중에 젤 어려운거 같네요;; uml 표기법은 정해져있다지만 설계가 정답도 없는 문제인거 같고
네 마지막도 맞아요 결국 Actor가 clear 메시지를 보내면 treeMap.clear()가 동작하는데 treeMap을 하려면 Actor가 treeMap을 알거나 받아야겠죠? actor.clear(treeMap) 을 통해 treeMap에게 clear라는 메시지를 보냈고 treeMap은 treeMap.clear(topNode) 라는 clear 오퍼레이션을 실행한거죠
그렇군요 답변 감사합니다 메시지가 뭔 느낌인지 약간 감이 올거같아요 복기해보겠습니다 귀한 시간 내주셔서 감사합니다
어 근데 저 소스코드에선 클리어 메서드에 매개변수가 없는데 걍 생략된건가요?
넵 그렇겠죠 ? 근데 결국 treeMap.clear()를 하려면 어떤 객체가 만들어져서 clear든 clean이는 fresh든 보내줘야겠죠?
그리고 아까 말했듯이 topNode를 treeMap이 알고 있으니까 변수 전달없이 그냥 topNode = null이 된거에요 TopNode 객체한테 메시지를 보내줄 필요가 없는거죠
네... 감사합니다 ㅠㅠ
누가 이 돌대가리한테 책 추천했냐 - dc App
이유 설명도 못 하시면서 뭔 돌대가리 ㅇㅈㄹ임ㅋㅋ 여기서 니가 젤 저능아같던데
이새끼는 알려주는건 없이 비방만 하니까 욕을 먹는거지 ㅋㅋㅋㅋ
이딴거에 목숨걸지마라 시퀀스 그렇게 중요한거아님 그냥 흐름이 request response를 어떻게 참조하고 어떻게 반환한지 지금 니가 모른다고 크게 문제없슴 저 시퀀스 현업에서 못본것같음
그런가요? 2학년 과목인데 너무 어렵네요