경력이 5년이 넘었는데도, 스프링을 쓸줄만 알지 이해도는 낮다고 생각되어 수강하고있는 개발자입니다. 예전부터 궁금하다가 답을 못찾고, 이번 강의를 보면서 제가 생각했던게 맞았지만, 과연 이것때문에 모든 코드를 이렇게 구현할까? 라는 의문점이 들어 여쭤보려 하는데요. 서비스를 구현할 때 인터페이스, 구현체로 하는 이유가 있을까요? 실무에서 항상 XXXservice, XXXserviceImpl로 업무를 했는데요. 인터페이스를 사용하며 구현체를 바꿔사용하는것은 이해됩니다. CarService을 확장한 ToyotaImpl, KiaImpl등등을 그에 맞게 확장가능한거는 이해가 되는데... 굳이 이 이유 하나만으로 인터페이스를 사용하는지 좀 궁금해서요.
안녕하세요 현재 강의 수강을 시작한 사람입니다. 제가 현재 vscode를 사용중입니다. 파이썬 기초강의를 몇 개 수강한 후에 html css javascript 등을 배우면서 가장 편한 에디터라고 생각했거든요. 이번 강의를 들을때에도 파이참 대신 vscode로 진행하려고 하는데 문제가 없을까요?
[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
맥북에서도 c++을 쓸 일이 있어서 vscode를 깔고 파일을 다운받아 cpp_study 파일에서 빌드를 실행했는데 사진과 같은 에러가 발생하네요 ㅠㅠ 구글링을 해봐도 vscode가 비주얼 스튜디오랑은 많이 다른것 같아서 설정을 어찌 바꿔야 할 지 모르겠는데 혹시 알고계신다면 알려주시면 감사하겠습니다
Pretty()라는게 있는데 nodejs에서 find뒤에 사용하니 pretty() is not a function이라고 나옵니다. 이걸 사용해서 원하는 데이터만 보이도록 출려하고 싶은데 pretty말고 다른 방법있을까요? 아, ! 그리고 실제 업무에서 pretty()를 잘 사용하나요?
user.js static associate (db) { db . User . hasMany (db . Auction ) ; db . User . hasMany (db . Good , { as: 'Owner' }) ; db . User . hasMany (db . Good , { as: 'Sold' }) ; } good.js static associate (db) { db . Good . hasMany (db . Auction ) ; db . Good . belongsTo (db . User , { as: 'Owner' }) ; db . Good . belongsTo (db . User , { as: 'Sold' }) ; } user 와 good 모델의 관계가 Owner, Sold 두개 인거 같은데 실행 후에 goods 테이블보면 총 3개의 foreign key 가 생성되어있는데.. 혹시 왜 그런건가요??
그림에 getYounger의 위치에 대해서 질문있습니다. static 메서드 getYounger는 Programmer가 아니라 Person으로 가야하는 것 아닌가요? 프로토타입 체인에 의해서 연결되어있기 때문에, Person이 가지고 있고, 이것을 Programmer가 프로토타입 체인을 통해서 접근가능한 것 아닌가요? 혹시 일반 클래스 필드처럼 값의 레퍼런스가 아니라 static의 경우에도 값을 복사해서 가지고 가나요? https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/Public_class_fields mdn 문서에 따르면 ` Public static fields are not reinitialized on subclasses, but can be accessed via the prototype chain.` 라고 나와 있어서 혼란스럽습니다 ㅜㅜ
강의 마지막에 있는 constructor를 보고 궁금증이 생겨서 코드를 한번 만들어서 돌려봤는데, 제가 생각한것과 전혀 다른 ? 방식으로 동작해서 질문드립니다. 아래 코드를 보면, 생성자에 name을 받고, 상위의 클래스를 통해서 생성자호출을 하였는데, 왜 클래스 필드의 초기값이 p1.name이 iu가 아니라 다른 값이 나올까요? 참고: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/Public_class_fields Public instance fields are added with Object.defineProperty() either at construction time in the base class (before the constructor body runs), or just after super() returns in a subclass. 라고 되어있는데 이게 후자에 해당하는 부분인가요? 저는 이해가 안가는 부분이, 클래스필드를 생성자를 통해서 초기화를 해주어야 맞지 않나? 라는 생각을 하고 있거든요.. class Person { name = 'memberPerson'; constructor(name){ this.name = name; } } class Programmer extends Person { name = 'memberProgrammer'; constructor(name) { super(name); } } const p1 = new Programmer('iu'); p1.name; >>> memberProgrammer
My-sql은 보니까 EXCEPT, MINUS(차집합) INTERSECT(교집합) FULL OUTER JOIN 이런것들을 지원안하는데도 코딩테스트에서 My-sql을 쓰는게 좋은가요..? 오라클에 비해 지원 안되는게 벌써 3개니 더 불편해 보이긴 합니다 오히려 사용안하는게 실행시간을 단축하는데 좋은가요? 뭐 각자 취향차이겠지만 저는 둘다 초보라 하나를 메인으로 가려고 해서 여쭤봅니다. 원래 oracle을 약간 기본적인거만 써봤는데 초급반, 중급반 강의 my-sql쓰면서 다시 oracle로 바꾸기고 그렇네요
서버를 백그라운드로 어떻게 돌리나요? aws에서 npm run start 로 하면 서버가 백그라운드에서 돌지 않아서 cli 창을 끄면 서버가 종료됩니다. pm2 start server/index.js 로 하면 서버가 계속 돌아가긴 하지만 이미지를 못 찾아서 not found 에러가 발생합니다. 해결 방법 말씀해주시면 감사하겠습니다.
안녕하세요 선생님 테스트에 관한 질문 하나 올립니다. 1. 상품 주문 관련테스트를 진행할 때 그전에 Member와 Item을 insert하는 과정에서 영속성 컨텍스트에 저장해두고서 실제 아래와 같이 findeOne과 같이 영속성 컨텍스트에서 조회해온다라고 이해하고 있습니다. 다음 줄에 영속성 컨텍스트를 지워주고 난후에 조회시 em .flush() ; em .clear() ; assertEquals부분에서 오류가 납니다 오류 내용은 아래와 같습니다. 테이블을 확인해보니 order_item에 oder_id값이 null이여서 그런거였습니다. 왜 null 이들어가는지 확인이 안되네요 ..ㅠㅠㅠ Order Entity에는 아래와 설정이 되어있습니다. 생성메소드에서 무언가 수정해줘야할까요 ..
안녕하세요 강사님, 수강 중 궁금증이 생겨 질문을 남깁니다. 지금까지 설명해주신 연관관계 주인이 왜 존재해야 하는지, 또 어떤 식으로 주인을 설정해야 하는지는 모두 이해했습니다. 설명하신 내용 중에 아래와 같은 내용이 있었는데요. "연관관계 주인이 아닌 관계로는 읽기 기능만 사용이 가능하다. 그 외의 모든 관리는 관계의 주인이 처리한다." 이와 관련하여 팀에 새로운 멤버를 추가하고 싶을 때 team.getMembers().add(member)를 하면 DB에 반영되지 않고, member.setTeam(team)을 해야만 제대로 반영되는 부분까지 이해했습니다. 그런데, member.setTeam(team)으로 멤버가 팀을 가지도록 하고, 트랜잭션 커밋까지 완료해 해당 내용이 DB에 정상적으로 반영이 되었다면.. 그 이후에 따로 team.getMembers().add(member)를 하지 않아도 Team이 가지고있는 List<Member> members에서 방금 추가한 member를 조회할 수 있어야 하는 것이 맞지 않나요? 이를 확인하기 위해 아래와 같은 코드로 실습을 진행하였습니다. try { Team team = new Team() ; team.setName( "TeamA" ) ; em.persist(team) ; Member member = new Member() ; member.setName( "MemberA" ) ; member.setTeam(team) ; em.persist(member) ; tx.commit() ; Team findTeam = em.find(Team. class, member.getTeam().getId()) ; List<Member> members = findTeam.getMembers() ; for (Member m : members) { System. out .println( "Name : " + m.getName()) ; } } catch (Exception e) { tx.rollback() ; } finally { em.close() ; } team을 생성하고 member를 생성하여 member에 team을 할당해줬습니다. em.persist를 통해 해당 객체들을 영속상태로 만들었고 tx.commit으로 flush처리까지 해주었습니다. 하지만 Name : MemberA는 출력되지 않습니다. 물론 DB에는 정상적으로 저장되었더라도 메모리에는 저장되지 않았기 때문에 조회가 안 된다고 말씀하시기는 했지만.. 이 코드의 경우에는 Team과 Member가 정상적으로 DB에 적용된 후에 em.find()를 통해 새롭게 받아온 Team으로 조회한 것인데.. 왜 제대로 조회되지 않는 것인지 모르겠습니다. ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 추가 질문 하나만 더 드리겠습니다. 관계의 주인이 아닌 List<Member> members는 읽기 전용으로만 사용하기 때문에 members.add(member)를 아무리 해도 DB에 영향을 끼치지는 않겠지만.. 쓰기 권한이 없는 녀석에게 쓰기 메서드가(list.add()) 존재하는 것 자체만으로 어떠한 문제가 야기될 수도 있지는 않을지 궁금합니다. 이 부분에 대해서도 함께 답변해주시면 감사하겠습니다.