안녕하세요. 이전부터 말씀해주신 CQRS에 관해서 간단한 질문이 있습니다. 예를 들어 Member엔티티에 관해 아래처럼 2개의 레포지토리로 쪼갠다고 가정할게요. - MemberQueryRepository(읽기) - MemberCommandRepository(쓰기) 저희가 JPA Data의 이점을 살리려면 JpaRepository를 상속받아서 사용한다고 강의에서 배웠는데요. 읽기 관련 쿼리가 들어있는 Query와 쓰기 관련 쿼리가 들어있는 Command 2개의 레포 모두 JpaRepository를 상속받아서 사용하나요? JpaRepository에는 단순 find~로 시작하는 읽기 메소드뿐만 아니라 delete, save등 쓰기에 관한 메소드도 같이 들어가있어서 읽기/쓰기 레포에서 모두 상속받아서 사용한다면 나중에 작업을 할 때 단순 조회/저장/삭제 등을 어떤 레포에서 사용해야할 지 혼란이 올 것 같습니다. CQRS에 대해서는 이론만 알고있었지 실제로 적용해본적이 없어서 많이 혼란스럽네요. 감사합니다 :)
ValueError: unknown format code 'd' for object of type 'str' 이라고 뜨네요 krx/listing.py 에서 df_listing['Symbol'] = df_listing['Symbol'].apply(lambda x: '{:06d}'.format(x)) 이부분에서 x값이 string으로 들어가서 문제가 생기는듯 합니다. 버전은 선생님 버전이랑 같은데 뭐가 문제인지 몰겠네요
Jpa에서 id를 가지고 조회를 할때는 쿼리문을 따로 작성할 필요없이 가져올 수 있는데, 전체 멤버에 대해 가져올 때는 select m from Member m 과 같이 쿼리문을 작성해야하는 이유가 궁금합니다. 동적 쿼리같은 경우도 아니고 id를 통해 조회하듯이 만들 수도 있었을거 같은데 특별한 이유가 있나요??
@Entity @Table ( name = "Member" ) //@SequenceGenerator( // name = "member_seq_generator", // sequenceName = "member_seq", // initialValue = 1, // allocationSize = 50) @Getter @Setter public class Member { @Id // @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "member_seq") private Long id ; @Column ( name = "USERNAME" , nullable = false ) private String userName ; private Integer age ; // @Column(name = "TEAM_ID") // private Long teamId; @ManyToOne @JoinColumn ( name = "TEAM_ID" ) private Team team ; @Enumerated ( EnumType. STRING) private RoleType roleType ; } public static void main ( String [] args ) { EntityManagerFactory emf = Persistence. createEntityManagerFactory ( "hello" ) ; EntityManager em = emf.createEntityManager () ; EntityTransaction tx = em.getTransaction () ; tx.begin () ; // code 작성 try { Team team = new Team () ; //1. team.setId ( 1L ) ; team.setName ( "TeamA" ) ; em.persist ( team ) ; Member member = new Member () ; //2. member.setId(3L); member.setUserName ( "member1" ) ; em.persist ( member ) ; team.addMember ( member ) ; em.flush () ; em.clear () ; Team findTeam = em.find ( Team. class, team.getId ()) ; List < Member > members = findTeam.getMembers () ; for ( Member m : members ) { System. out .println ( "m = " + m.getUserName ()) ; } tx.commit () ; } catch ( Exception e ) { tx.rollback () ; } finally { em.close () ; } emf.close () ; } 안녕하세요 강사님! 제가 테스트를 하던 도중에 궁금한데 도저히 답이 안나와서 질문드립니다. 시퀀스를 지우고 아이디에 값을 넣어 테스트를 해봤는데요. 1.의 team.setId ( 1L ) ; 을 주석처리하고, 2. 를 풀고 실행했을 경우에는 이렇게 값이 들어가는데요 이와 반대로 1.의 주석을 풀고, 2.를 주석처리했을 경우에는 와 같이 아무런 값도 들어가지 않는데요. 어떤 이유 때문에 이렇게 되는지 알 수 있을까요?
안녕하세요! 강의 너무 잘듣고있습니다 다름이아니라 아래와 같은 오류가 뜨는데 버전문제인것 같아, jdk11 설정을 다시 다했는데 이런 오류가 뜨네요ㅜㅜ 구글링해봤지만, 모르겠어서 질문올립니다! (intellij는 실행시키면 아래와 같이 정상작동이 됩니다 C:\Program Files\Java\jdk-11.0.10\bin\java.exe
선생님 안녕하세요~ 기존에 제가 따로 사용하는 reset.css를 사용하여 제작해도 상관 없을까요? 다른 부분은 괜찮은데 제가 font-size : 0.625em; line-height:1;로 설정을 해놓고 썼던 습관이 있어서 만들다가 혹시 결과물이 다르게 나올까봐 걱정이 되네요..!
선생님, 매번 꼼꼼하게 답변해주셔서 정말 감사합니다. 제가 요즘 질문이 많네요 ㅎㅎ 선생님 강의를 듣고 계산기를 거의 다 완성했는데 테스트를 해보니 1234567 곱하기 2를 계산을 하면 2.46913e+06 이렇게 나오더라구요. 24671434 이렇게 나오게 할 수 없을까요? 그리고 decimal을 사용해서 숫자 3개 마다 콤마를 넣게 해보았는데요. 제가 구글링한 함수가 더블을 받아서 스트링으로 반환을 하는 함수더라구요. 그래서 처음에 숫자버튼 눌러서 스트링에 하나씩 더해질 때는 사용을 못했어요. = 버튼 눌러서 계산값을 화면에 보일때만 콤마가 보입니다. 처음에 입력값 넣기위해 숫자버튼 누를 때도 콤마가 보이게 하려면면 어떻게 하면 좋을까요? decimal 을 사용하면 소숫점이 0이면 생략을 하더라구요. 입력하는 중간에 0.05 를 입력하려고 할때 문제가 될것 같아요.
안녕하세요 선생님, 지난번에 consumer가 메세지를 받지 못한다고 했던 사람입니다! 아래에 어떤 분이 저와 같은 문제를 겪고 계신것같은데, 제가 처음 질문드린 사람입니다! 말씀해주신대로 먼가 문제가 있어서 플럼 로그를 확인해보니 SmartCar-agent 컨피규레이터? 그런게 없다고 해서 플럼의 구성 tier를 확인해보니까 제가 SmartCar-Agent가 아니라 SmartCar-agent라고 카멜케이스를 지키지 않아서 생긴 문제 같습니다. 저게 컨슈머가 메세지를 받지 못하는것과 상관이 있나요?? 분명 오늘 다시해보니 hello bigdata는 잘 받는거같은데 그리고 다시 오늘 시도해보니 생긴 문제가 SmartcarStatusInfo20160101.txt 이 로그를 발생시켜서 working/SmartCar 안에 잘 있음을 계속 확인하고 mv 명령을 통해 해당 로그 파일을 car-batch-log 폴더로 옮기고 car-batch-log의 디렉토리를 확인해보면 total 0 아무것도 전달되지 않더라고요;; <--이 부분 어떻게 하면좋을까요ㅠㅠ 몇번씩 오타 확인을 해도, 그리고 mv명령을 쓰기 전 SmartCar 안 폴더에 txt가 잘 있는걸 확인해도 저 부분에서 문제가 있어서 여태 컨슈머가 잘 받지 못한건지 의아스럽네요..... 감사합니다!
from sklearn.datasets import make_classification import matplotlib.pyplot as plt %matplotlib inline plt.title("3 Class values with 2 Features Sample data creation") # 2차원 시각화를 위해서 feature는 2개, 결정값 클래스는 3가지 유형의 classification 샘플 데이터 생성. X_features, y_labels = make_classification(n_features=2, n_redundant=0, n_informative=2, n_classes=3, n_clusters_per_class=1,random_state=0) # plot 형태로 2개의 feature로 2차원 좌표 시각화, 각 클래스값은 다른 색깔로 표시됨. plt.scatter(X_features[:, 0], X_features[:, 1], marker='o', c=y_labels, s=25, cmap='rainbow', edgecolor='k') ------------------------------------- 책 p.199에 나와있는 코드인데, 수업중에는 다루지 않아 질문 남깁니다. plt.scatter(X_features[:, 0], X_features[:, 1], marker='o', c=y_labels, s=25, cmap='rainbow', edgecolor='k')이 부분에서 1) X_features[:,0]은 0에 대한 예측 확률, X_features[:, 1]은 1에 대한 예측 확률값 인가요? 앞서 배운 predict_proba() 수행시 반환되는 ndarray값과 혼동되어 질문 남깁니다. 답변 미리 감사드립니다.
안녕하세요. webpack 강의를 모두 수강하고 프로젝트에 적용하던 중 몇 가지 의문점이 생겨 질문 드립니다. 1️⃣ devServer 시작시 이유없이 요청이 발생합니다. 아래는 webpack.config.js 설정입니다. const path = require ( ' path ' ); const HtmlWebpackPlugin = require ( ' html-webpack-plugin ' ); const webpack = require ( ' webpack ' ); require ( ' dotenv ' ) . config (); module . exports = { mode: ' none ' , entry: ' ./index.js ' , output: { filename: ' bundle.js ' , path: path . resolve ( __dirname , ' dist ' ), }, devServer: { port: 9000 , proxy: { ' /api ' : { target: ' https://newsapi.org/v2 ' , changeOrigin: true , logLevel: ' debug ' , pathRewrite: { ' ^/api ' : '' }, }, }, }, plugins: [ new HtmlWebpackPlugin ({ template: ' index.html ' , }), new webpack . DefinePlugin ({ ' process.env ' : { API_KEY: JSON . stringify ( process . env . API_KEY ), }, }), ], }; 앞에서 예제로 사용한 코드에 추가적으로 .env를 사용하기 위해 dotenv 라이브러리를 설치하여 적용하였습니다. 그런데 server 실행 후, 개발자 도구를 열어보면 아래와 같은 오류가 발생합니다. 제 코드 어딘가에 잘 못 입력한 부분이 있어서 그런걸까요? (index.html은 webpack.config.js와 같은 레벨에 있습니다.) 2️⃣ proxy가 동작하지 않습니다. News API 를 통해 뉴스 데이터를 받아오려 했는데 CORS 문제가 발생하여 webpack devServer에 proxy 설정 을 하였습니다. 제 생각으론 request url중 '/api/...' 가 포함되는 요청들에대해 '/api' 는 '' 으로 그리고 앞에 target으로 지정한 'https://newsapi.org/v2'가 붙어서 request 될거라 예상 했습니다. 그런데 제 예상과 달리 여전히 'http://localhost:9000/api/top-headlines...'으로 요청 하고 있었고 debug를 출력해보니 아래처럼 나왔습니다. [HPM] Rewriting path from "/api/top-headlines?country=kr&apiKey=93e..." to "/top-headlines?country=kr&apiKey=93e..." [HPM] GET /api/top-headlines?country=kr&apiKey=93e694811aac419db735d29a23b26c57 ~> https://newsapi.org/v2 Vue CLI로 webpack.confing를 셋팅 했을 때는 이런 문제가 발생하지 않았는데 직접 구현하려하니 원인을 잘 모르겠습니다. 😥 아이디어나 조언 주시면 감사하겠습니다.
안녕하세요. HEADER 형태의 ENTITY ( A ) 와 BODY 형태의 ENTITY ( B ) 가 있고 서로 ENTITY에 @OneToOne 양방향 맵핑이 되어있습니다.(fetch - LAZY) A를 조회할때마다 B가 같이 조회되는 현상(2개의 쿼리발생)이 있어서 검색해본 결과 HEADER에 해당하는 부분은 OneToOne 맵핑을 안해도 된다고 해서 제거한 결과 제가 원한대로 1개의 쿼리만 발생하였습니다. jpa 강의에서는 예제에서 OneToOne 양방향맵핑이 되어있던데 제가 검색했던 내용과 어떤 관련이 있을까요?