안녕하세요 기선님! 어느덧 기선님의 강의를 다 들어보고, 다시 구체화하고 있네요. 항상 양질의 강의 감사합니다!! :) 기선님께서 @AuthenticationPrincipal 애노테이션을 통해서 authentication의 principal 정보를 가지고 올 수 있다고 하셨습니다! 그래서 저는 principal의 값으로는 닉네임 같은 String값을 사용하거나, 이외에는 UserDetails 인터페이스를 구현한 클래스( 여기서는 User 클래스를 상속받은 UserAccount)만 principal 정보로 사용가능한 것인가 생각을 했습니다. 여러 경우를 시도해보다가 위의 조건에 해당되지 않은 단순한 도메인 account 객체를 principal로 주고 @AuthenticationPrincipal을 통해서 바인딩을 받아보았는데, 인증이되지 않은 경우에는 null, 인증이 된 경우에는 해당 account 객체를 바인딩 받을 수 있었습니다. 마지막 결과는 인증하지 않았을때는 null, 인증이 되었을 때는 바인인 받은 acconut의 닉네임 값을 출력한 것입니다. UserAccount 패턴을 사용하지 않아도 동일한 결과를 얻을 수 있어서 질문을 드렸습니다!! 아니면 이렇게 principal로 도메인 클래스의 객체를 주는 방법이 정석적인 방법이 아닌걸까요? 감사합니다 :)
안녕하세요 강사님! 항상 강의 잘보고 있습니다. 정확히 강의 관련된 질문은 아니지만 헷갈리는 부분이 있어서요. spring에서 말하는 model이라는 개념이 domain, repository 등등을 포함하여 말하는 것인지 아니면 controller에서 view에 값을 넘겨줄 때 쓰는 Model 클래스를 말하는 것인지 헷갈립니다! 찾아보니 블로그마다 다르게 명시가 되어있더라구요 java beans들을 model이라고 하는 사람도 있던데 뭐가 맞는것일까요??..
아래의 수식에서 x축을 Time(Date) 으로 y축을 "005930"(삼성전자) 의 시세 값으로 변경하고자 합니다 그 변경 된 수식을 완성해 주시면 감사 하겠습니다. sam = fdr.DataReader("005930","2020") fig = go.Figure(data=[go.Candlestick(x=sam.index, open=sam['Open'], high=sam['High'], low=sam['Low'], close=sam['Close'])]) fig.show()
#include<iostream> #include<queue> #include<vector> #include<algorithm> using namespace std; struct Loc { int z; int x; int y; Loc(int a, int b, int c) { z = a; x = b; y = c; } }; int tom[103][103][103]; int dis[103][103][103]; int main() { queue<Loc> q; int m, n, h; cin >> m >> n >> h; int flag = 0; for (int i = 0;i < h;i++) { for (int j = 0;j < n;j++) { for (int k = 0;k < m;k++) { cin >> tom[i][j][k]; if (tom[i][j][k] == 1) q.push(Loc(i, j, k)); } } } int dx[6] = { 1,-1,0,0,0,0 }; int dy[6] = { 0,0,1,-1,0,0 }; int dz[6] = { 0,0,0,0,1,-1 }; while (!q.empty()) { Loc tmp = q.front(); q.pop(); for (int i = 0;i < 6;i++) { int xx = tmp.x + dx[i]; int yy = tmp.y + dy[i]; int zz = tmp.z + dz[i]; if (tom[zz][xx][yy] == 0 && xx >= 0 && xx < n && yy >= 0 && yy < m && zz >= 0 && zz < h) { tom[zz][xx][yy] = 1; dis[zz][xx][yy] = dis[tmp.z][tmp.x][tmp.y] + 1; q.push(Loc(zz, xx, yy)); } } } int max = 0; for (int i = 0;i < h;i++) { for (int j = 0;j < n;j++) { for (int k = 0;k < m;k++) { if (tom[i][j][j] == 0) { cout << -1;return 0; } } } } for (int i = 0;i < h;i++) { for (int j = 0;j < n;j++) { for (int k = 0;k < m;k++) { if (dis[i][j][j] > max)max = dis[i][j][k]; } } } cout << max; return 0; } 먼저 좋은 강의를 제공해주셔서 정말 감사하다는 말씀 드리고 싶습니다. 너무너무 큰 도움을 받고 있습니다. 그리고 강의에 없는 문제를 질문드려서 정말 죄송합니다.ㅜㅜ 이 문제는 강의에 있는 토마토문제에서 한 차원 늘렸을 뿐이고, 그래서 구조체에 z변수를 추가해서 똑같이 풀어보았는데요. 아무리 봐도 맞는 코드인것같고, 백준에 있는 테스트케이스를 넣어봐도 잘 나오는데 틀렸다고만 나오니 답답하네요 2차원과 똑같이 코드를 구성하면 안되는이유가 있는것일까요..?
Thread 1: "-[UIWebView setNavigationDelegate:]: unrecognized selector sent to instance 0x7fcdd861ecf0" 2021-06-03 14:56:51.427325+0900 MyWebBrowser[70067:4962002] -[UIWebView setNavigationDelegate:]: unrecognized selector sent to instance 0x7fcdd861ecf0 와 같은 에러가 발생하는 것 같은데 어디가 문제인지 확인을 못하는 중입니다. View Controller 코드에서 self . webView . navigationDelegate = self 를 주석처리하면 오류없이 실행되긴 합니다. 버전 문제인 것 같기도 한데,, 시작부터 쉽지 않네요;;
강의를 잘 듣다가 문득 이게 실제 프로젝트에서도 자주 쓰이는지, 혹시 쓰인다면 어떤 목적으로 쓰이는건지 궁금해서 질문드립니다 잘 쓰이지 않는다면, 스프링 개념을 직접 체감하며 이해하기 위해 배우는건가요? 강의 엄청 잘 듣고 있습니다 감사합니다 이 강의 얼른 듣고 다른 강의들도 빨리 배우고 싶네요ㅎㅎ
안녕하세요. 강의 잘 따라다가 오류가 발생해서 질문 남깁니다. models.py 작성 후 터미널에서 python manage.py makemigrations를 치면, AttributionError: module 'django.db.models' has no attribute 'model'이라고 에러가 발생합니다. 에러 관련 내용 첨부합니다. models.py 부분에 오타가 나거나 하진 않은 것 같은데 어디가 잘못된 걸까요? models.py 부분도 같이 첨부하겠습니다. 답변 기다리겠습니다. 감사합니다.
안녕하세요 강사님! 우선 강사님의 강의 덕분에 알고리즘 실력이 향상되어서 감사하다는 말씀을 드리고 싶습니다. 제가 여쭤보고 싶은 것은 강사님의 문제를 풀며 작성한 코드와 문제를 github에 올려도 되는지 궁금합니다. 올리는 목적은 기록을 남기기 위함이고 절대 다른 목적은 없습니다!
강의대로 application.yml 에 DB 테이블 자동 생성 까지는 잘 작동을 하는데, data.sql 을 만들고 insert문에서 자꾸 에러가 뜨네요 ㅠ 원인이 뭘까요.. 에러코드 입니다. org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSourceScriptDatabaseInitializer' defined in class path resource [org/springframework/boot/autoconfigure/sql/init/DataSourceInitializationConfiguration.class]: Invocation of init method failed; nested exception is org.springframework.jdbc.datasource.init.ScriptStatementFailedException: Failed to execute SQL script statement #1 of URL [file:/D:/Documents/spring_project/ecommerce/microservice/catalog-service/build/resources/main/data.sql]: insert into catalog (product_id, product_name, stock, unit_price) values ('CATALOG-001', 'Berlin', 100, 1500); nested exception is org.h2.jdbc.JdbcSQLException: Table "CATALOG" not found; SQL statement: insert into catalog (product_id, product_name, stock, unit_price) values ('CATALOG-001', 'Berlin', 100, 1500) [42102-176]
localhost8080으로 들어가면 HomeController을 타고 "home"이라는 html이 나와야하는데 앞선 강의에서 만들어둔 resources/static/index.html화면이 나오고 있습니다. 왜 home컨트롤러를 타지 못할까요?? 컨트롤러에서 매핑된게 없을경우에만 static안에 있는 index.html파일을 스프링이 자동으로 매핑해주는걸로 알고있습니다. 아래 캡처본은 HomeController입니다. 위같은 화면이 나오지 않고 아래와 같은 화면이 나오는 상황입니다. 왜 이런걸까요?