Whiteship's Note


KSUG 제10회 한국 스프링 사용자 모임 세미나





저도 발표자로 참석합니다.
봄싹에서 사용한 스프링 코드를 보여드릴 예정입니다.
설명만 하면 지겨우실테니,  스프링을 사용하여 어떤 간단한 서비스를 구현하는 모습도 보여드릴까 합니다.
많이 참석해 주세요~
top


[KSUG] 스프링 AOP 선택, 활용, 이슈 - 스크린캐스팅

Spring/KSUG : 2008.11.11 08:56




위 링크에서 동영상 링크를 사용하여 mov 파일을 다운 받으시거나, 퀵 타임 플레이어가 설치되어 있다면, 웹에서 바로 보실 수도 있습니다.

발표를 하고 2주 정도 지난 다음 녹화를 한 건데, 스크린캐스팅을 좀 짧게 찍고 싶어서 총 다섯 개로 나눠서 한 편당 10~15 내외로 찍었습니다. KSUG 블로그를 통해서 한 주에 한 편식 올리겠습니다. 쉬는 시간 짬짬히 구경해 주세요. :)

이번에 올린 동영상은 AOP에 대한 내용인데, AOP 자체에 대해서는 깊게 알지 못하기 때문에, 제가 아는 한도 내에서만 살짝 살펴봤습니다. 따라서 내용이 다소 수박겉할기식으로 느껴질 수도 있는데요. 첫 번째 동영상의 목적은 AOP에 대해 자세히 설명 드리는 것이 아니라 AOP라는 개념을 프로젝트에 도입하면 어떤 도움을 받을 수 있는지 좀 더 현실적인(코드를 통해서) 감을 잡게 해드리는 것이 목적이기 때문에 그다지 AOP 개념이나 역사에 대해 자세히 다루진 않았습니다. 가볍게 보실 수 있겠죠.ㅋ

어느새 점심 시간이네요. 식사 맛나게 하세요.

updated 2008/11/11

이번에는 스프링 AOP에 대한 주제로, 코딩으로 Proxy 만드는 방법, 스프링 API 사용 방법, XML 스키마 사용 방법, @AspectJ 사용 방법, AspectJ 연동 방법까지 살펴봅니다.

next 2008/11/18
top


스프링 AOP 선택, 활용, 이슈 - 발표자료 & 소스코드

Spring/KSUG : 2008.10.14 14:49


원래 계획대로면 스크린캐스팅도 제공해야 하는데, 제가 이번 주에는 여유가 없을 것 같아서 일단 발표자료만 올립니다. KSUG에서 별다른 연락이 없기 때문에 일단 제 블로그에 올리죠. 나중에 KSUG에서 일괄적으로 정리해서 발표 자료 묶음을 올리면 좋겠네요.


방명록에 보니 소스코드 요청도 있어서, 같이 올려둡니다. 메이븐 프로젝트인데, 몇몇 라이브러리는 메이븐 중앙 저장소에서 받지 못할 수도 있습니다. 그럴 때는, OSAF 메이븐 저장소를 원격 저장소로 등록해서 사용하시면 됩니다. OSAF 메이븐 저장소 주소는 다음과 같습니다.

http://www.opensprout.org:8082/nexus/content/groups/public/


top


제 9회 스프링 세미나 후기

모하니?/Thinking : 2008.10.12 20:37




시작이 안 좋군
(10:00 ~ 11:20)

아침 열시 몇 분. 전철역에서 나가려는데 찬욱이를 만났습니다. 최근에 안경을 바꿔서 그런지 하두 오랜만에 만나서 그런지 처음 몇 초 동안 '누구지..' 하다가 금방 알아보곤 반갑게 세미나장으로 발걸음을 옮기기 시작했습니다. 하지만.. 얼마후 찬욱이한테 전화가 오더군요. 영회형 전화인 것 같은데 전화받는 소리를 들어선 좋은 소식이 아니구나 싶었습니다. '뭐?? 영회형이 못 오신다고?' 당황스러웠지만, 지난 번에도 비슷한 경험이 있기 때문에 그때 보단 덜 당황스러웠습니다. 일단 준비해야 할 것은 점심. 그리고 일정. 일정 조정은 비교적 간단한데 문제는 점심. PM용어로 완벽한 Critical Path. 찬욱이는 전화국에 전화해서 주변 도시락집 알아보고, 대엽이는 맥가이버같이 세미나 시설 조작을 완벽하게 해냈습니다. 음향, 조명, 스크린까지 캬.. 전 도시락집이 전화 안받길래. 나가서 점심 때울만한거 찾아봤으나. 샌드위치 만한게 없더군요. 문제는 주문을 어떻게 하고 돈을 어떻게 걷고. 분명 발표 중에 사람들은 또 올텐데. 주문은 몇 시간 전에 해야 제때 다 만들 수 있을지... 등등 머릿속이 발표 말고 이런 자봉활동으로 가득 찹니다. 하나 하나 대엽, 찬욱과 셋이서 결정하고, 봄싹 스터디 회원분들(김재진, Arawn, HeloIs)의 도움을 받아 무사히 점심 준비를 제때 완벽하게 끝낼 수 있었습니다.

첫 번째 발표 시작(11:30 ~ 1:05)

일정 변경과 대표님 부재에 대해 죄송한 마음을 전달하고, 첫번째 발표가 시작 됐습니다. 찬욱군의 스프링 JDBC. 오랜만에 보는 라이브코딩. 그래 이게 스프링 세미나였지. 라는 옛 추억이 새록 새록 떠오르는 발표였습니다. 썡 JDBC 코드를 하나씩 점진적으로 리팩토링 해가면서 Pluggable Behavior 패턴을 적용해 나가는 모습이 멋졌습니다. 스프링 JDBC를 직접 구현해버리는 건가 의심스러울 정도 였습니다. 찬욱군 발표가 끝나갈 즈음, 대엽군과 주문해둔 샌드위치를 가지러 다녀오고, 저는 단상에 올라 안내 말씀을 드리고, 봄싹 스터디 회원분들은 그 사이 음료수를 준비해 왔습니다. 타이밍 맞추기 숨가쁜 순간이었는데, 얼추 잘 맞았습니다.

점심시간(1:10 ~ 2:00)

먹고나니 이제 한시름 놨다..라는 생각이 들더군요. 인원수를 정확히 예측하기 힘든 상황이어서, 2만원 가량 개인적인 손해를 보긴 했지만, 그 정도는 그냥 KSUG에 기부한걸로 생각하기로 하고, 남아있는 점심 시간에 탁구를 치며 놀았습니다. 자주 왔던 곳이라 탁구를 하고 놀 수 있다는 걸 알고 있었거든요.ㅋㅋ 오랜만에 보는 선배(성일이형)가 세미나에 오셨길래, 탁구 한 판. 룰도 잘 몰라서 대강 대강. 대강 대강 승리. ㅋㅋ. 점심 시간에 짧게나마 맥스님, 박재성님과 짱가님을 볼 수 있어서 좋았습니다.

두 번째 발표 시작(2:00 ~ 3:10)

두 번째 발표는 현준이형의 스프링 Security. 캬오. 어렵죠. Acegi 부터 공부를 했었는데 전혀 쉽지 않았습니다. 하긴 AOP도 쉽진 않았었지만, 개인적으론. Acegi가 더 어려웠던 것 같습니다. Acegi는 레퍼런스 보다는 Spring In Action같이 재밌고 쉽게 설명한 책을 통해 학습하는것이 좋겠다는 생각입니다. 기본 개념 설명 부터 DAO 기반 예제까지 볼 수 있었습니다. 개인적으론 공부한지 오래되서 그런지 클래스 이름들이며 역할들이 잘 기억나지 않았습니다. 복습의 소중함을 느낄 수 있었습니다. 두 번째 발표에는 참가해주신 분들의 참여가 눈부셨습니다. 특히 박재성님의 질문들은 식곤증으로 졸까 말까 고민하는 저를 깨워주셨습니다. 질문 내용은 "(URL 기준 권환 확인으로 부족한 경우로 인해) 메소드 단위의 권한 확인을 하는 경우는 없는가?" 였습니다. 이 부분은 제가 몇일 전에 본 TSE 2008 동영상에 등장하는 내용이라 그 내용을 조금 언급해었습니다.

마지막 발표 시작(3:20 ~ 4:50)

마지막 발표 전에 양수열님을 아주 잠깐 뵐 수 있었습니다. 발표하러 올라가야 할 순간이라..ㅎㅎ 마지막 발표는 제가 스프링 AOP를 발표했습니다. 원래 계획 대로였으면 4시 40분부터 발표를 시작했을텐데 일정이 바껴서, 1시간 20분이 앞당겨진 3시 20분부터 발표를 시작했습니다. 이제와서 생각이지만, 다행이라는 생각이 들더군요. 원래 시간에 발표를 했었으면, 듣는 분들이나 발표하는 저까지 지칠뻔 했습니다. 마지막 발표라고 생각하니 그 동안 아껴뒀던 모든 힘과 그 동안 준비해온 모든 걸 다 보여줘야겠다는 생각이 들어군요. 그런 결심을 하고 단상에 올라갔습니다. 발표 준비를 할 때는 한 주제 당 시간까지 계산해 뒀었는데, 이번 발표에선 그럴 필요가 없겠다는 생각에 정말 모든 걸 쏟아내듯이 발표했습니다. 슬슬 지쳐가는 모습이 보이는 청중들을 농담과 질문으로 깨워가면서 잼나게 진행했습니다. 역시.. 발표 할 때는 뭔가가 잘 안 됩니다. 잘 돌아가던 이클립스가 갑자기 터무니 없이 느려지고, PPT 슬라이드 쇼가 중간에 정지 되서 강제종료후에 다시 실행하는 사태가 있었습니다. 그런 상황에서도 아무런 동요없이 잘 봐주시는 청중분들의 자세가 고마웠습니다. 그래서 더 열심히 했습니다. 발표를 끝내고 마지막 인사를 하며 남는 아쉬움은 거의 없었습니다. 준비한 모든걸 보여드릴 수 있어서 만족스러웠습니다.

집으로

발표가 끝나고 뒷 정리를 하고 나와보니, 그새 많은 분들이 가셨습니다. 아쉬운건.. 오늘 오신 분들 중에 말을 걸고 싶은 분이 있었는데 말을 못 걸었습니다. -_-;; 너무 바빴습니다.. 는 핑계고 왠지 먼저 다가가 인사를 나누는걸 아직도 잘 못하는 제 자신 때문이었습니다. 그게 좀 아쉽다고 하면 아쉬웠습니다. 썬 테크 데이에 가서는 먼저 인사를 나누는 연습도 좀 해야겠습니다. 암튼.. 남아있던 분들과 저녁 식사를 간단하게 하고, 집에 가는 전철에 오르니까 피로가.. 한 방에 몰려오기 시작했습니다. 아침부터 이것 저것 신경쓰고 마지막에 시원하게 발표를 했더니 그 피로 때문에 눈이 자꾸 감겼습니다. 그래도 동네에 사는 분이 계셔서 잼나게 이 얘기 저 얘기 나누면서 올 수 있었습니다. 집으로 들어오기 전 맥주 두 캔와 과자 한 봉지를 샀는데 아직 뜯지도 않고 후기를 정리했습니다. 이제 다 썼으니까 기선이랑 한 잔 할까 합니다. 수고했다.

감사의 인사

이번 세미나에서 고마움을 느낀 분들에게 감사의 인사를 드립니다.

대엽님: 완전 맥가이버. 만능입니다. 세미나 환경 세팅, 점심 주문, 이것 저것 시작부터 끝까지 정말 감사합니다.
김재진님, Awarn님, HeloIs님: 감사합니다. 이 분들 안 계셨으면 음료수 73개를 어떻게 들고 오고, 오신 분들에게 나눠 드리고, 쓰레기 정리하고.. 캬오. 감사합니다.
참석하신 모든 분들: 스프링 사용자들은 다들 매너 남/녀 인가요? 뒷정리 할 것도 없더군요. 쓰레기도 잘 분리해서 버려주시고, 발표 중에 한 분도 조는 모습을 못 봤습니다. (행씌도 안 자던데? 오오..)
아. 오늘의 유일한 지원 썬.: 박안나님께서 카드 형 USB 2GB 두 개를 지원해주셨습니다. 감사합니다. :)

top


KSUG 9번째 스프링 세미나



사용자 삽입 이미지

정말 오랜만에 발표를 합니다. 너무 오랜만에 하는 발표라 잘 할 수 있을지 걱정이 되는데요. 이번이 KSUG에서 하는 마지막 발표가 될지도 모르니만큼 준비를 열심히 해서 유익한 시간이 될 수 있도록 하겠습니다. 접수는 이곳에서..

Spring AOP를 주제로 발표를 맡았는데, 구체적으로 어떤 내용들을 다뤘으면 하는지 의견을 듣고 싶습니다. Spring AOP와 관련해서 평소 궁금하셨던 것이 있으신 분들은 이곳에 의견을 주시면 적극 반영하겠습니다.

top


AnyFrame 프레임워크에 대한 소견

모하니?/Thinking : 2008.07.19 22:07


말 그대로 소견입니다. 제가 뭐 프레임워크를 논할 만큼 경력이 있거나 대단한 개발자도 아니고, 이제 막 개발 7개월차인 개발자일 뿐입니다. AnyFrame을 보고나서 느낀 점들을 조금 더 일반화해서 생각을 정리해봤습니다. 소스 코드를 보다가 화가나서 Anyframe 보다가 흥분 해버렸네요. 이런 글도 적었었지만, 지금은 저에게 좋은 교훈이 되어준 것에 대해 고마운 감정도 생깁니다.

프레임워크에 대한 소견들은 KSUG 포럼에 정리해 두었습니다. 매우 쉬운, 딱 제 수준에 맞게 쓴 글들이니까, 보시면서 여러 의견들을 나눌 수 있으면 좋겠습니다.

AnyFrame 프레임워크에 대한 소견1. 소스 코드 베끼기
AnyFrame 프레임워크에 대한 소견2. 오픈 소스 오용하기
AnyFrame 프레임워크에 대한 소견3. 패키지 구조가 스파게티
AnyFrame 프레임워크에 대한 소견4. 필요 없는 코드


top


[후기]한국 스프링 사용자 모임(KSUG) 제2회 세미나



준비 1. 프로그램 만들기
준비는 거의 일주일 내내 진행이 되었다. 이전에 초본 겪으로 만든 프로그램을 토비님께서 영회형이 수정하셔서 1회 때 접수를 받을 때 사용한 프로그램이 되었고 그 프로그램을 다시 손 봐서 접수 화면을 살짝 바꾸고 회원 리스트 화면을 개선하여 출석 체크를 할 수 있도록 변경했으며 거기에 퀴즈를 진행 할 수 있도록 수정하는 작업을 했다. 이때도 역시나 Spring MVC를 사용해서 자주 바뀌는 요구사항에 빨리 대응할 수 있었다. 내심 퀴즈 프로그램이 고장나지는 않을까 걱정이 많이 됐었다. 따라서 이번주 공부 목표는 Spring MVC Testing으로 세웠다. Controller들을 쉽고 간단하게 테스트 할 수 있는 방안과 사용법을 익혀두어야겠다.

준비 2. 장소 섭외
이와 관련된 포스팅을 이전에도 한 적이 있지만 짧게 정리하면 지나친 관료제로 인해 서류 절차가 복잡하고 융통성이 없어보이는 사람들을 움직이게 만들려면 그 사람들에게 먹히는 카드.. 즉 권력을 가진 자를 움직이면 된다. 교학팀의 직원들을 움직이려면 교수님을 설득하고 움직이면 게임은 끝난다. 그 다음은 그냥 가서 말만 전하면 알아서 서류도 보내주고 발로 뛸 필요도 없어진다.

준비 3. 현수막
업체 선정이 중요했다. 어떤 곳은 가격이 너무 비싸고 어떤 곳은 거치대는 안팔고 인쇄한 천들만 파는 곳도 있다. 어떤 곳은 현수막 이미지(시안)를 만들 때 너무 까다롭게 굴어서 ai파일이라는 일러스트 파일을 요구하는 곳도 있다. 또 어떤 곳은 주문 화면이 너무 복잡해서 도대체 어떻게 주문을 해야할지 모르게 만든 사이트도 있었다. 다들 어떻게 장사를 하고 계신건지;;
정말 운 좋게도 두 번의 시도 만에 꽤 괜찮은 업체를 골랐다. 시안 작성에 참고할 이미지가 어떤 파일이든 상관없이 웹 하드에 올려두면 알아서 참고 하시고 만들어 주신다. (이걸 보면 다른 업체는 왜 그렇게 이미지 파일에 집착하며 나를 괴롭혔는지 이해가 안 된다. 거래를 중단하길 잘했지;;) 그리고 시안이 나오는데는 어느정도 시간(3시간 정도?)이 소요 되지만 보정에는 거의  2시간 이내의 소요 시간을 보여주셨으며 배송은 하루만에 되었다. 시안도 마음에 들었고 배송까지 깔끔했다. 성공적이였다.

모임 1. 접수받기
드디어 사전 접수 프로그램을 적극활용할 때가 왔다. 리스트에서 오신 분의 성함을 확인하고 참가로 상태를 변경해주면 된다. 사전 접수를 하지 않으신 분들은 새로 등록할 수 있도록 현장 접수 화면에서 필요한 데이터를 입력하도록 하였다. 별다른 문제는 없었지만 몇 가지 요구사항을 뽑아낼 수 있었다.
1. 정렬 :: 아무리 파폭의 Ctrl + F가 좋다 하더라도 이름 순으로 정렬이 되어 있어야 더 찾기가 편하다.
2. 현장 접수 화면 간편화 :: 현장 접수를 할 때 4가지 주요 정보를 제외한 설문에 응답 할 시간이 없는 관계로 이상한 값들(dd, ㅇㅇ)을 임의로 넣어두었다. 현장 접수는 그냥 짧게 받을 수 있도록 하자.
3. 접수 화면 공통 :: 커서가 자동으로 맨 처음 입력할 필드에 있어야겠다.

모임 2. Inside Spring MVC
접수를 받다가 개회사를 못들었다. 그리고 벌써 Inside Spring MVC가 시작해버렸다. 이런.. 너무 일하는데 집중하고 있었구나 라는 생각이 들었다. 같이 접수를 받아주고 계셨던 윤걸이형, 한수형, 계옥누님과 접수를 끝내고 본격적으로 강의를 들으러 회의실로 들었갔다. 제법 많은 사람들로 이번에도 1회 때와 마찬가지로 맨 뒤에서 듣기 시작했다. Spring MVC의 기본 원리와 주요 매카니즘을 깔끔하게 설명해주셨다. 요즘 AJN에서 스터디하고 있는 JSP Design Patterns가 떠올랐다. 또 맨~처음 Sprign MVC를 접했을 때의 그 당혹감도 떠올랐다. 하지만 이렇게 딴 생각을 할 만큼 널널한 발표가 아니였다. 1회 때 보다 더 완벽한 라이브 코딩을 시연하는 모습에 빠져들었다. 즉석에서 Validation까지 되고 날짜를 PropertyEditor를 사용하여 Date 타입으로 바인딩하는 것 까지 정말 많은 내용을 순식간에 완성했다. 경외로운 모습이었다. 세미나 준비에 회사일 그리고 발표까지.. 정말 무서운 선배님이다. 한가지 아쉬운 것은 역시나 범위가 너무 방대해서 시간 관계상 더 깊게 들어가지는 못했었던 것 같다. 컨트롤러들의 적당한 사용처, 컨트롤러들 단위 테스트 방안, 테스트가 가능한 JSP 대체 기술들 등이 다음에 또 다루게 될 기회가 있을 것으로 예상된다.

모임 3. 스프링 퀴즈왕
드디어 퀴즈 프로그램 개봉박두... 이름이 대문짝 만하게 나오는 것이 특징인 매우 간단한 프로그램이였다. 사전 접수를 한 사람들 중에서 랜덤으로 한 명씩 딱 한 번만 기회가 주어지며 문제를 맞춘 사람 명단을 기록하는 프로그램이다. 프로그램을 처음 기획했을 때는 토너먼트였다. 따라서 16강전을 대비하여 만들어 두었다가. 중간에 변경이 되서 오히려 더 간단해졌다. 찬욱이가 구현해둔 reset 기능이 없었으면 17번째 사람을 뽑기 위해 서버를 재부팅 했을지도 모른다;; 다행이였다. 퀴즈 문제가 너무 어려워서 재밌었다.ㅋ

모임 4. Inside Spring DAO
최고였다. 토비님의 빠른 말투 하지만 차분하며 논리정연하고 재미난 이야기 처럼 잘 구성되어 있는 발표는 몸이 경직 될 만큼 완전히 빠져들게 만들었다. DAO 계층을 두는 이유는? 이라는 질문에 혼잣말로 대답을 하고 있었는데 갑작스래 공개적으로 물어오셔서 깜짝놀랬다. JDBC로 DAO 구현 -> 탬플릿 사용한 DAO-> 템플릿 헬퍼 사용한 DAO -> Spring 을 사용한 DAO 구현 순서로 Spring이 제공하는 API의 편의성을 가장 이해하기 좋고 재밌게 보여주셨으며 DataAccessException의 유용함과 타당성 그 뒤로 Transaction 처리에 대한 내용으로 트랜잭션 처리의 문제점으로 비즈니스 로직에서 데이터베이스 관련 코드들이 보인다는 단점이 있는데 이것을 AOP를 적용하여 깔끔하게 모듈화 하고 사용하기 쉽게 XML에서 선언적으로 처리할 수 있는 코드를 보여주셨다. 마무리는 ORM과 JDBC코딩의 장단점과 타협점을 제시해 주셨다. 1회 때에 비하면 이번 발표는 많이 이해할 수 있었다는 것에 만족할 수 있었다. 영회형의 발표와 더불어 역시나 배우고 본 받을 것이 많은 발표였으며 다음에는 Spring AOP를 또 다시 멋지게 보고 들을 수 있지 않을까 하는 기대가 생겼다.

모임 5. 질의 응답
마지막 코너로 마지막 까지 남은분들의 질문과 의견을 받는 시간이 진행됐다. 많은 분들이 지치셨는지 회의장은 처음과는 다르게 많이 비어있었지만 오히려 묘한 열기가 보다 더 모임스러운 분위기를 만들어냈다. 처음에는 잘 발언을 안하셨지만 맨 마지막에 인상 깊은 발언을 해주시는 분을 보며 제가 작년 여름에 처음 Spring을 접하고 본격적으로 Spring 공부에 착수한 올해 초를 떠올리며 그 분의 심정에 많이 공감을 할 수 있었다. 하지만 그 분과 다르게 나는 맨땅에 해딩을 하지 않고 항상 참조할 수 있는 책들과 레퍼런스가 있었고 언제든 물어볼 수 있고 같이 공부할 수 있는 AJN 스터디 매니아 분들이 곁에있어서 그랬는지 또 다른 커뮤니티의 필요성을 느낄 수 없었다. 물론 아직도 Spring에 대해 공부할 것들이 산더미 같다.

마무리.
꽤 열심히 준비했던 모임이였고 많은 분들이 참여하길 바랬었다. 그리고 딱 예상한 만큼의 인원들이 오셨고 행사도 딱 준비 한 만큼 성과가 있었던 것 같았다. 너무도 솔직하고 정당한 결과에 기분이 들뜨지도 가라앉지도 않는 홀가분한 하루였다. 일이 끝나서..ㅋ
개인적으로는 잠시 손을 놓고 쉬고 있었던 Spring 공부에 불을 지피는 개기가 되었고 초고수들의 놀랍도록 짜임새 있고 멋진 라이브 코딩 발표에 감동을 받을 수 있었다.
이제는 방학도 됐고(학교가 안 괴롭히고) 세미나도 끝났으니(일거리가 떨어졌고) 공부에 집중할 수 있을 것 같다.(그러길 바란다.) 열심히 해서(당연히 그래야지), 무언가 만들었을 때(개발 했을 때) 자신있고 상쾌한 기분이 드는 그런 것을 만들고 싶다.
top


KSUG 제2회 세미나 장소 안내



국민대 본부관 1층 학술회의장에서 합니다.

본부관으로 오시는 길은 정문에서 시작하여 크게 두 종류의 길이 있습니다.
사용자 삽입 이미지
빨간 길은 길(언덕)을 따라 쭉 걸어오시면 됩니다.
파란 길은 평지와 계단, 엘리베이터를 사용하는 길입니다. 파란선이 관통하고 있는 건물의 1층에서 엘리베이터를 타고 5층으로 내리셔서 분수가 보이는 쪽으로 나가시면 됩니다.

본부관으로 들어갈 수 있는 문은 빨간 선이 닿은 곳과 파란 선이 다은 곳 그리고 별도의 표시는 하지 않았지만 분수 뒤편의 건물로 들어가실 수도 있습니다.

학술회의장은 본부관에 들어서시면 바로 발견하실 수 있습니다. 벽면을 잘 보시면 큰 문이 열려있을 것입니다.

그럼 다음주 토요일에 뵙겠습니다~
top