던킨도너츠에 귀여운 세서미 스트리트 도넛이 나왔다고 해서 쿠키몬스터군을 데리고 들려봤다. 



던킨은 진짜 프로모션팀한테 상줘야할 것같다. 

펀볼세트라니!! 귀여운 펀 볼로 운동까지!! 



틴케이스도 구경해봐여



먼치킨 통마저 아름다워~



도너츠는 이렇게 새로나왔다.



엘모야 안뇽~



빅버드의 바바리안 필드! 쿠키몬스터의 블루베리 필드!

전 이렇게 필링 가득한 도넛도 좋더라구여!



야금야금 담아봅니다.



쿠키몬스터 러버로써 쿠키몬스터세트로 득템!



온 가족이 모여 득템 축하! 

[JPA강좌,연관관계매핑]@OneToMany, mappedBy란?


@OneToMany

 

n  N:1 양방향관계에서 1쪽에서 N쪽으로의 방향성 또는 1:N 단반향에서는  컬렉션을 참조하므로 Set, List, Map을 사용할 수 있다.

n  1:N 관계는 잘 사용되지 않으며, 1:N(OneToMany) 단방향 보다는 M:1 양방향 관계를 사용하는 것이 좋다.

n  List는 순서가 있고 중복을 허락하는 자료구조 이므로 자료들의 순서를 알 수 있고정렬이 가능하다자료들의 순서(인덱스)를 알기 위해서는 별도 인덱스 칼럼(@OrderColumn)이 정의되어야 한다.

n  Map Key, Value 쌍으로 자료를 저장하는데 key설정을 위해 @MapKey를 사용하며실제 테이블의 칼럼을 지정할 때는 @MapKeyColumn을 사용한다.

n  @OneToMany 속성

ü  targetEntity : 연결을 맺는 상대 엔티티

ü  cascade : 관계 엔티티의 읽기 전략을 설정.

ü  mappedBy : 양뱡향 관계에서 주체가 되는 쪽(Many외래키가 있는 쪽)을 정의

ü  orphanRemoval : 연관 관례에 있는 엔티티에서 변경이 일어난 경우 DB 변경을 같이 할지 결정합니다. Cascade JPA 레이어의 정의이고 이 속성은 DB레이어 에서 직접 처리한다기본은 false

 

mappedBy

 

n  테이블은 외래키 하나로 두 테이블의 연관관계를 관리하는데 엔티티를 단방향으로 매핑하면 참조를 하나만 사용하고양방향 관계로 설정하면 객체의 참조는 양쪽에서 하나씩 둘인데외래 키는 하나이므로 두 엔티티 중 하나(OWNER)를 정해서 테이블의 외래키를 관리해야 하고 MANY쪽이 OWNER 이며 mappedBy @OneToMany쪽의 컬렉션 칼럼에 기술하여 OWNER가 아님을 정의한다.

n  mappdBy @OneToOne, @OneToMany, @ManyToMany 어노테이션에서 사용할 수 있으며 mappedBy가 없으면 JAP에서 양뱡향 관계라는 것을 모르고 두 엔티티의 매핑 테이블을 생성한다.

n  mappedBy OWBER 엔티티의 필드나 속성과 대응된다.

n  ManyToOne 양방향 관계에서 Many측에는 mappedBy요소를 사용할 수 없다.(MANY 쪽이 OWNER)

n  OneToOne 양방향 관계에서 OWNER는 반대쪽(INVERSE SIDE)에 대한 FK를 가지는 쪽이다.

n  ManyToMany 양방향 관계는 양쪽 중 아무나 OWNER가 될 수 있다.



출처 : http://ojc.asia/bbs/board.php?bo_table=LecJpa&wr_id=230


소메와 영등포 타임스퀘어에서 영화를 보고 배가 고파서 뭘 먹을까 고민하다 떡볶이로 메뉴를 정했다!!



반장떡볶이라는 이름에 걸맞게 메뉴판 센스 보소!!

수학의 정석 생각나긔



공부 좀 열심히 할 걸 후회되는..



인수분해라니요!! ㅎㅎ 



세느 메뉴가 꽤 다양했다.

여기서 우리는 여심을 저격당하고 싶으니까 5번 전학생 떡볶이를 골랐다!



양호선생님 오뎅탕이라니.. 국물로 치유될 것만 같은 네이밍이다.



단무지는 스스로..ㅎㅎ



드디어 떡볶이가 나왔다. 

고칼로리 뿜뿜대지만, 너무 맛있을거같은 비주얼을 뽐내고 있다!



라면사리부터 흡입!



다음엔 선도떡볶이를 먹어봐야겠군!



CGV 당일 이용하고 가면 10% 할인도 해준다. 영등포로 영화보러갈 때마다 냠냠하고싶다!


Thymeleaf 사용시, 하위와 같은 예외가 발생하는 경우가 있다. 

org.springframework.expression.spel.SpelEvaluationException: EL1007E:(pos 0): Property or field 'name' cannot be found on null


예외 발생 코드

<span class="column" th:text="${academy.member.name}" > </span> 

member 가 null 인 케이스에 발생한 문제로, 
다음과 같이 null 이 아닐 경우에만 name을 참조하도록 해야한다. 
1.

<span class="column" th:text="${academy.member.name}"  th:if="${academy.member} ne null"> </span> 
2.
<span class="column" th:text="${academy.member?.name}" > </span> 


추석 연휴에 지인들과 노량진에서 회를 떠와서 먹기로 했다.

더위가 좀 가시고 선선해지니 전어도 먹을 겸, 회 먹기 좋은 날씨! 

9호석 급행을 타고 노량진으로 슝~ 


노량진 수산시장은 노량진역 7번출구에 있다!



노량진에서 먹을 때는 회 떠서 진주식당에서 먹곤햇는데, 노량진역에 커다랗게 광고되어있다!



7번 출구에서 나와서 100 미터 남짓 걸으면 수산시장으로 들어가는 터널? 같은게 보이는데! 여기로 쭉쭉 들어간다!



쭉쭉! 들어갑니다. 연휴인데 회를 포장하러 오는 사람들이 정말 많았다!  다 나같은 마음인건가? ㅎㅎ (사람들 안 지나갈때, 찍을려고 진땀을 뺐다는 후문) 



드디어 고지가 눈 앞에!



나오면 이렇게 큰 건물이 반겨준다! 이 곳은 노량진 수산시장 신관이라고 한다.



이렇게 많은 횟집에서 어디를 갈까?



지인의 단골집인 당진 수산으로 픽!



모듬회랑 매운탕거리 갖고 집으로 고고!



매운탕 슉슉!



오늘의 주인공! 활어회!

아 진짜 너무 맛있었다 !



회사동료가 맛있다고 노래를 부른 핫도그를 1달 만에 먹으러가게되었다. 

맛있어봤자 명*핫도그, 아**핫도그 정도겠지 했는데...  이 것은  인생 핫도그 였다.. 

강남역 9~10 번출구 사이에 있는데, 정말 완전 가운데에 있었다. 

처음에 9번출구로 나왔더니 휑~ 아무 것도 없어서 트럭이 오는 요일이 따로 있나 난감해했는데, 10번 출구쪽으로 고개를 돌리니 저렇게 노란 트럭에 불빛이 반짝반짝 


두근반세근반! 줄을 서보자! 

핫도그받는 줄과 계산하는 줄이 따로 있으니, 잘 살펴보세요! ㅎㅎ




완전 인생 핫도그! 밍구도 먹어보면 좋을텐데!



백종원의 푸드트럭에 나와서 유명해졌다고한다! 



메뉴판!!

안돼지인 척 할라고 소심하게 치즈수수찹쌀 핫도그 하나 선택! 

혼자 왔으면, 롱다리에 핫커리,치즈수수 다 먹는건데.. 

뭘 먹을지 왜 고민해! 다 먹으면 되지!! 

L.POINT 적립해줘서 인상깊었던... ㅎㅎ 



레시피 구경하세요!! 맛이 일품! 

얼른 맛보고 싶다!! 



우리 둘 것이 나왔다!! 핫도그를 튀기면 저렇게 거꾸로해서 기름을 빼시는 모습이 인상깊었다.

기름 맑은거 보이나? 아저씨! 계속 팔아주세요!! 제~에~발! 



그냥 먹어도 맛있다고 하셔서 설탕을 조금만 찍어 그냥 먹을 수도 있게 자리를 확보! 



소스통이랑 나의 핫도그만 찍으려고하는데, 계속 나와주는 착한 회사 동료의 핫도그!

블로그할건데 왜 소스 안예쁘게 뿌리냐고!! ㅎㅎㅎ 



머스타드도 그냥 머스타드가 아니예요. 치즈 머스타드! @_@



치즈가 엄청 많이 들어있었는데 사진을 못 찍었다...

특이한 것은 다른 핫도그집은 소시지 겉 테두리에 치즈를 둘러 함께 먹게 되어있는데, 

이 곳은 절반이 치즈, 절반이 소시지로 구성되어있어서 치즈 실컷 먹고 소시지가 이렇게 나온다.

근데 그게 완전 맛있다!! 감동쓰! 튀김옷도 엄청 맛있고! 

한번 먹으면, 두번, 세번 먹게 될 핫도그이다. 이것은 발명품이다. 



다시 한번 작성하지만, 9-10 번출구 사이에 있다. ㅎㅎ 

그냥 갈 뻔 했기에 완전 강조!! ㅎㅎ 

저는 1주일에 한번 이상 갈 예정이니, 핫도그 먹는데 우주먼지같이 생긴 사람 보이면 인사해주세요 :) 


이천 땡땡땡스 다니는 동생이 자주 맛있다고 말했던 맛찬들에 가보았다. 

이천에 오면 사준다고 해서 진짜로 갔다.

월요일이고 멀고 하니까 못 갈 줄 알았나본데... 


말이 쉬운 것은 결국은 그 말에 대한 책임을 생각하지 않기 때문이다. – 맹자


말을 함부로 뱉으면 안된다는 교훈을 알려주기 위한 특명을 가지고 
퇴근하고 이천으로 바로 향했다..



맛찬들은 이천이 아닌 부발역에서 가깝다고하여, 판교에서 경강선을 타고 부발로 출발! 



초월역을 초월하고 곤지암을 들렀다가, 이천은 그냥 지나치고 부발에 도착! 



맛찬들 이천부발점 도착! 



메뉴판!


우리가 도착하는 사이, 삼겹살이 이미 다 구워진 상태였다. 

참! 잘했어요! 



항공샷!



된장찌개 맛이쒀!



명이나물도 맛이쒀! 명이나물을 계속 리필했는데, 바로 바로 갖다주셨다! 



왜 눈물이 나지?



치즈 삼십조각 주세요.



치즈도 구워먹는데 진짜 맛있었다. 



특히나 더 좋은 것은 고기도 다 구워주시고 치즈도 다 구워주시고 접시에 올려서 맛보게 해주신다.

심지어, 이렇게 친절한 직원분들이 가득한 고기집은 처음 봤다. (처음은 아닌거같다.)



한판 다 먹고 또 시킴.. 



처음 사진에 마늘이 추가된 것같지만, 다른 판이다. 



항정살 없다그래서 갈매기살! 

다음에 또 가면 항정살을 굽고 있으라고 해야겠다.

함께 나오는 감자, 떡도 매우매우 맛나다. 



이천까지 간 보람이 있네.


this 가 정해지는 규칙 


1. 함수 실행시, this 는 전역 객체이다. 
2. 함수가 객체의 프로퍼티일 경우, this는 해당 객체를 의미한다.
3. new 생성자로 함수 호출시,  this는 new 키워드로 만들어진 객체이다. 
4. call, apply 메소드로 간접 실행시, this 는 호출하는 쪽에서 지정한 객체이다. 


- 코드 1 - 


- 코드 1 실행 결과 -


- price 함수 실행시, this 와 window는 같음을 알 수 있다.



- 코드 2 - 


- 코드 2 실행 결과 -


- pizzas.order() 호출 시, order는 pizzas의 프로퍼티이기 때문에 this 는 pizzas라는 객체가 된다. 

  따라서, order 안에서 this.pizzaA 를 찍어보면 예상대로 25000이 출력된다.

  여기까지는 무난하다.

- 헷갈리는 부분은 pizzas.order 안에서 호출하는 getPrice 라는 내부함수의 콘텍스트이다.

  내부 함수의 콘텍스트는 외부 함수의 콘텍스트에 의존하는 것이 아니라 실행 환경에 의해 결정된다.

  따라서, getPrice 안의 this는 Window를 의미하며, this.pizzaA는 undefined 이다.  

  this.pizzaA + this.pizzaB 는 undefined 들의 합을 의미하므로 NaN 이 출력되는 것이다. 





- 그렇다면, 기대했던 대로 pizza.order 내부의 getPrice() 호출시에 NaN이 아닌 55000 이 제대로 출력되게 하려면 어떻게 해야할까?

  1차적으로 getPrice 함수 내의 this가 window가 아닌 pizzas객체를 의미해야한다. 

  call, apply 메소드를 이용하면 함수 실행시의 this를 지정할 수 있다.




- 코드 3 - 


- 코드 3 실행 결과 -


- call 메서드는 첫번째 argument로 들어온 값으로 적용된 콘텍스트의 값을 수정해준다. 

- order 콘텍스트의 this는 pizzas이기 때문에 getPrice의 this도 pizzas가 된다. 따라서 55000이 출력되게 된다. 


call과 apply의 차이는 argument를 넘기는 방법이다. 상황에 맞춰 필요한 메소드를 사용하면 되겠다.


 call

 각각의 인자를 넘긴다. 

 콤마로 구분한다.

 예) fn.call(o, arg1,arg2,...,argN);

 apply

 배열이나 객체 형태로 넘길 수 있다. 

 인자가 가변적일 때, 유용하다. 

 예) fn.apply(o, [args]);



2부 끝.

   

'개발이야기 > javascript' 카테고리의 다른 글

[jQuery] selector 정리  (0) 2019.05.02
[javascript] this 알기 - 1부  (0) 2018.09.17

+ Recent posts