[개정판 2023-11-27] Spring Boot 3.x 를 이용한 RESTful Web Services 개발
안녕하세요. 강의 잘 듣고 있습니다. data.sql 없을 땐 테이블 생성 되고 문제 없었는데 data.sql 파일을 만드니까 테이블 생성하기 전에 insert를 해서 에러가 나는 것 같습니다. 어떻게 해결하면 좋을까요.. insert into user values(1, sysdate(), "eony", "asdf", "941010-2020200"); nested exception is org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "USER" not found; SQL statement: insert into user values(1, sysdate(), "eony", "asdf", "941010-2020200") [42102-200] 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:/Users/eony/workspace/study/%ec%9d%b8%ed%94%84%eb%9f%b0%ea%b0%95%ec%9d%98/restful-web-service/target/classes/data.sql]: insert into user values(1, sysdate(), "eony", "asdf", "941010-2020200"); nested exception is org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "USER" not found; SQL statement: insert into user values(1, sysdate(), "eony", "asdf", "941010-2020200") [42102-200]
해당 강의에서 macOS 환경을 가정하고 docker desktop을 이용해서 kubernetes를 간편하게 설치하도록 되어있는데 우분투와 같은 리눅스 환경에서는 docker desktop이 지원하지 않네요 ㅠㅜ kubernetes 설치 방법도 업데이트가 되면 좋을것 같습니다 ~
안녕하세요. 강의 너무 잘 듣고 있습니다. 그리디 알고리즘에 대한 개념이 안잡혀서 질문드리고 싶습니다. 이렇게 짠 코드도 그리디 알고리즘을 이용했다고 볼 수 있나요? function solution ( times ){ let count = 0 ; let x = times . sort (( a , b ) => { if ( a [ 0 ] === b [ 0 ]) return a [ 1 ] - b [ 1 ]; else { return a [ 0 ] - b [ 0 ];} }) let pos = 0 ; for ( let i = 0 ; i < x . length ; i ++){ if ( x [ pos ][ 1 ] > x [ i ][ 0 ]) count ++; else { break ; pos ++; } } return count ; }
2.3절의 Theorem 8에서 a~f는 이해가 갔는데 c 는 one to one 을 의미한다고 들었고 g는 onto를 의미한다고 배웠는데 두가지가 equivalent 하다는 말이 이해가 가지 않습니다. a~f, j, k 와 g,h,i는 다른 것 아닌가요. 아니면 역행렬을 갖기 위한 최소한의 조건들 아닌지요. 그리고 one to one은 solution이 하나거나 없는 경우인데 없는 경우는 역행렬이 존재하지 않지 않은지요.. 그래서 onto 는 최소한 해가 하나 이니까 one to one이면서 onto인 경우, 즉 해가 하나 있는 경우가 역행렬이 존재하는 경우가 아닌가요??
안녕하세요 ! 정환님 덕분에 재밋게 수강하고 있는 수강생입니다. MVC 모델을 JS로 따라하면서 최대한 꼭꼭 씹으면서 이해를 하려 여러번 돌려보고 있습니다. 다른 건 아니고 정환님이 구현하는 대로 따라했지만, HistoryListView 부분 구현 강의에서 controller를 통해 historyData를 솔팅할 때 제대로 되지 않아 정환님과는 다르게 나오더라구요. 그래서 최근 검색어가 새로 생성될 때도 순번이 다르게 나타나 계속 아래쪽에 위치하였습니다. sort 메소드 부분의 콜백을 이리저리 만져보다가 일반적인 오름차순으로 생각할 때 부등호(>)가 아닌 뺄셈 연산자(-)를 사용한 거 같아 적용하니 잘 적용되더라구요. 혹시나 일반적인 부등호로 했을 때 원래 안되는 것인가 싶어서 질문드려요.
안녕하세요! 이번 강의를 듣고 실습을 해보았는데 실행 결과에 대해 의문이 생겼습니다. 코드의 14번째 줄에서 temp앞에 *을 붙인 경우와 뗀 경우의결과인데요 ptr1에 저장된 주소값도 내부적으로는 이진수이므로 temp에 저장이되고 그게 다시 ptr2에 저장이된다고 받아들였습니다. 그래서 결과적으로 ptr2가 num1을 가리키게 되었다고 생각했습니다. 그런데 출력된 형식이 코드의 14번째 줄에서 temp앞에 *을 붙인 경우와 달라서 제가 뭔가 잘못생각한것같아서 정정 부탁드려요 실제로 저처럼 코드를 짜는 경우는 없겠지만 그래도 설명 부탁드립니다! 감사합니다.
안녕하세요 영한님 정말 강의 유용하게 잘 듣고 있습니다! 강의를 듣다가 궁금한 점이 생겼는데 클라이언트는 서버에 리퀘스트를 보내기 전에 항상 쿠키 저장소나 캐시 저장소를 조회를 해서 쿠키 값이 있으면 메세지에 첨부하고 강의처럼 star.jpg 같은 파일이 있다면 서버 전송까지는 하지 않게 되는 건가요?!
이전 강의에서 물어본 사항들을 이번 강의에서 설명하시네유ㅠㅠ 보고 질문드릴걸 그랬습니다! useSWR이 동일한 키 값이면 동일한 data를 공유한다는것 까지는 이해했고, 리덕스를 대체할 수 있다는것까지도 알겠습니다. 근데 이 둘 간에 분명히 차이점이 있는데 이를 제대로 이해했는지 잘 모르겠어서 확인 차 질문드립니다! 동일한 키 값이란 말은 결국 동일한 url이라는 말인데, 동일한 url로 처리할 수 있는 요청들이 제한적이기 때문에 결국 SWR 공간들이 분할될 수 밖에 없다고 생각하는데요( 필요할 때 useSWR로 값을 불러올 수 있지만, 서로 다른 url에서 서로 다른 구조의 data를 응답받았을 때, 리덕스 스토어의 경우 initialState에 전체를 다 때려박아넣은 다음, 요청의 response 값을 initialState에 채워넣거나 수정하는 식으로 관리하지만, SWR의 경우 이와같은 조작을 하려면 서버에서 매번 data구조를 거대하게 리턴해야해서 효율이 너무 떨어지기 때문에 실용적인 측면에서 불가능하다 생각되서 분할되었다고 표현 ). 그럼에도 불구하고 코드 전체적으로 보았을 때 swr에서 사용되는 url들, 즉 키 값들은 한정적이기 때문에 같은 키값에서 사용되는 데이터들만 골라서 쓰면 전역공간처럼 쓸 수는 있을 것 같지만, 리덕스와 같은 완전한 전역공간은 아닌 것으로 예상됩니다. swr은 키값과 지역공간을 매핑해서 사용함. 필요에 따라 동일한 키값을 부여해서 데이터 공유가 가능하므로, 전역공간처럼 사용할 수 있음. 리덕스는 지역이고 뭐고 필요없이 그냥 전역공간 그 자체를 만들어서 사용함. 이렇게 이해했는데 얼추 맞나요? 수정) 비동기요청에 사용하는 fetcher들의 then에 동기useSWR('global',...)를 호출해서 비동기요청 then구문마다 global 키값에 데이터를 채워넣는 식으로 사용하면 리덕스 스토어를 완전히 대체하는 방법일까요?
선생님 안녕하세요. 항상 좋은 강의 감사합니다. 강의 듣다가 문득 궁금한게 생겨서 질문 드립니다. 교재에 보면 웹 스코프는 웹 환경에서만 동작한다고 하는데, 스프링에서 웹환경 말고 non-web환경은 어떤게 있나요? 제 생각에는 spring-boot-starter-web을 gradle에 추가 하기 전에 CoreApplication을 실행하거나, 테스트 코드 정도일거 같은데, 실무에서 실제로 쓰는 non-web환경이 있는지 궁금합니다. 그리고 제가 멀티스레드에 대한 개념이 약해서 질문 드리는데, http request 하나당 스레드가 한개 생성되는게 맞나요? 그러니까 request가 1000개면 1000개의 멀티스레드가 생성되서 작업을 하나요?
안녕하세요. 해당 강의를 처음부터 듣고있는 강의생입니다. DML 강의를 듣는중 궁금하게 생겨서 질문드립니다. DELETE나 UPDATE INSERT 같은 구문을 사용할때 , 쿼리를 통해 return 값에만 적용이 된는게 맞는지요? 원래 기본 DB에는 영향이 없는지 질문드립니다. 감사합니다.