안녕하세요? 영한님. 오랜만에 올립니다. resources/templates/basic/addForm.html 에서, [취소] button 부분: th:onclick="|location.href='@{/basic/items}'|" 경로에 @{..} 쓰지 않고, th:onclick="|location.href='/basic/items'|" 로 써도 나중에 소스 보기하면 둘 다 똑 같이 보입니다. 이렇게요, onclick="location.href='/basic/items'" 그렇다면, 굳이 @{..} 를 쓰지 않아도 되는 것 아닐까요? 강의 중에 이미 말씀하신 건지 모르겠지만, 질문 올립니다. ( Spring MVC 강의 질문이 너무 없어서 채워 드리려 적는 것, 아닙니다.^^)
"회원 도메인과 리포지토리 만들기" 중 findById를 구현하실때 Null값 때문에 Optional.ofNullable 을 쓰셨다고 하셨는데 그냥 if문을 써서 Null이 아닐때 id를 return하고 아닐때 Null을 return하는 방식의 구현을 하면 안되는 건가요? 코드가 좀 더 지저분해져서 그런건가요? 제가 java 쪽은 아직 study를 하지 않아서 질문 설명에 조금 부족한 부분이 있네요.
안녕하세요 영한님! 현재 강의에선 model 오브젝트의 내용을 request 임시 저장소에 옮기는 작업을 MyView에서 하셨는데요. 이렇게 되면 render()도 오버로딩해야되고 파라미터도 (model, request, response)로 개인적으론 지저분(?)하다고 느껴져서 그냥 front controller에서 model 내용을 request로 옮기는 것이 기존 render(request, response) 그대로 사용할 수 있고 좋은 거 같습니다. 제 짧은 소견으론 아키텍처 관점에서도 크게 나쁘진 않은거 같은데 영한님은 어떻게 생각하시는지 궁금합니다.
[리뉴얼] 처음하는 파이썬 데이터 분석 (쉽게! 전처리, pandas, 시각화 전과정 익히기) [데이터분석/과학 Part1]
안녕하세요 선생님! 9분쯤에 컬럼순서 바꾸려고 리스트해서 하는건 이해하고, value값도 변하지 않는거 까지는 알겠습니다! 근데 iso2를 삭제하고 1번자리에 다시 넣었는데 value값도 그대로 온거면 value값은 iso2라는 컬럼에저장되어있기에 자동으로 오는건가요? 그래서 cols.insest(1, 'iso2') 해야 iso2값이 그래도 오지 여기서 컬럼명을 바꾸고싶다고 다른걸 넣으면 value값은 안따라오는건가요?
안녕하세요! 쭉 공부하다보니 강의에서는 지금은 혼자서 개발하고 있는 것이니 백엔드 개발자(나)가 html,js,css 파일을 만들고 html을 타임리프 문법으로 수정해서 화면을 개발하고 있는 것 같다는 느낌이 들었습니다. 그런데 만약 프론트분과 함께 일할 때는 어떻게 하는걸까? 라는 생각이 들어서 질문을 하게 되었습니다! 제가 상상의 나래를 펼친 바로는 상상 1 1. 프론트분이 만든 html,css, js 등을 받아서 백엔드(나) 개발자가 만든 프로젝트의 templates과 static에 넣는다. 2. 백엔드(나)는 model로 넘긴 값들을 바탕으로 프론트분이 만들어준 html파일을 타임리프 문법으로 수정한다. 상상2 1. 프론트분이 만든 html,css, js 등을 받아서 백엔드(나) 개발자가 만든 프로젝트의 templates과 static에 넣는다. 2. 백엔드(나)는 로직에 따라 필요한 값들을 model에 담아 넘긴다. 3. 프론트 분이 model에 담긴 값을 바탕으로 타임리프가 아닌 다른 것을 사용해 화면을 구성한다. 상상 3 1. 설계한 URI에 요청이 들어오면 백엔드(나)는 필요한 데이터를 dto에 담아서 restApi JSON 형식으로 return 시킨다. 2. 프론트분은 받은 JSON형식의 데이터를 바탕으로 화면을 구성한다. 3. 완성한 html,css,js 등의 파일을 templates와 static에 가져온다. 4. 이 방법이 맞다면 프론트분과 일할 때는 model을 사용할 일이 없는것인가..? 제가 한참 고민하다가 상상을 해봤습니다. 프론트분과 어떻게 협업하는 것인가요..?
IPv6이 아닌 IPv4 정보를 보고 싶어서 VM option 추가하려고 했는데 방법을 잘 모르겠네요ㅠㅠ build.gradle 파일에 apply plugin: 'application' applicationDefaultJvmArgs = ["-Djava.net.preferIPv4Stack=true"] 를 추가하고 gradle project refresh를 해주었는데 여전히 IPv6 주소가 뜹니다. 혹시 VM option을 추가하는 다른 방법이 있을까요? 톰캣에는 종종 추가했었는데 내장 톰캣은 어떻게 설정해야하는지 모르겠어요 ㅠㅠ
안녕하십니까, 현재 RetinaNet을 구현해보고자 Retitanet paper를 읽고 케라스 공식홈페이지의 Retinanet 예시 코드(https://keras.io/examples/vision/retinanet/#implementing-smooth-l1-loss-and-focal-loss-as-keras-custom-losses) 를 이해하고자 하는데 제가 전반적인 흐름을 이해하질 못하고 있습니다. 본 강의에 있는 Fast RCNN 파트에서, 예측 박스가 Ground Truth 좌표값을 따라가는 것이 아닌 Anchor Box 중에서 Ground Truth와 IOU 높은 Positive Anchor Box를 따라간다고 하였습니다. 그렇다면 1. RetinaNet이 작동하기 전 과정이, 우서적으로 Anchor box들 생성하고 그 중에서 Ground Truth와의 IoU>= 0.5인 Positive Anchor Box 찾기 가 맞는지요. 2. 그리고 RetinaNet 구조를 보면 FPN 에서 나온 P3 ~ P7(Retinanet paper 기준) feature map을 class subnet과 box subnet으로 각각 들어가게 되고, 위 케라스 공식 홈페이지 예제 코드 이때, box subnet의 결과값이 W x H x (4 x 9) 꼴인데, Positive Anchor Box의 좌표는 (x, y, w, h)로 4개인데 어떻게 regression 계산이 되는지 궁금합니다. class subnet에 들어가게 되면 W x H x (num_classes x 9) 꼴의 결과값이 나오는데, 이는 2번질문과 마찬가지로 class labeling은 0,1,2,...과같은 정수형이거나 벡터형으로 나타날텐데 어떻게 regression 계산이 되는지 궁금합니다. 3. 또한, Positive Anchor Box를 제외한 나머지 Anchor Box들은 결국에는 직접적인 학습에 사용되지 않는 것인지요? 만약 사용된다면 Negative Anchor Box(IoU < 0.4)와 Ignorance Anchor Box(0.4 <= IoU < 0.5)가 어떤식으로 사용되는 지에 대해 설명 부탁드립니다. 4. 또한, 한 이미지에 서로 다른 객체가 2개 이상일 때, feature map이 class subnet에 들어가서 도출된 결과값( (num_classes) X 9)이 어떤 방식으로 해당 객체의 레이블과 대응하여 학습되는지 궁금합니다. 예를 들어, 사과(0), 고양이(1), 강아지(3) 클래스가 3개인 데이터셋에서, 사과(0)와 고양이(1)가 존재하는 특정 이미지를 RetinaNet에 training시키게 되면, P3 ~ P7의 feature map이 class subnet으로 들어가서 W x H x (3 x 9)꼴의 결괏값이 나올텐데, 이때 해당 결괏값이 사과(0)인지, 고양이(1)인지 어떤 값이 대응하여 학습해야할 지에 대해서 알 수가 없어 이렇게 질문드립니다. 대략적인 이론을 알고 있다고 생각하여 직접 코딩을 하려했지만, 막막하여 keras 예제를 통해 역으로 이론을 이해하려 시도했습니다. 하지만 코드 자체가 이해가 되질 않고, 어떤 식으로 데이터가 흘러가지는에 대해서도 파악할 수가 없었습니다.. 혼자서 해결해보려 했으나 며칠동안 해결되지 않고 오히려 이해가 되지 않는 부분이 많아져서 이렇게나마 질문을 드립니다...
id가 자동으로 증가하는 게 repository에서 save할 때 member.setId(++sequence)에서 증가하는 것 같은데요 sequence에 대해서 찾아보는데 db의 내용이 나와 알기가 쉽지 않습니다. 혹시 간단한 설명 부탁드려도 괜찮을까요? 그리고 제가 너무 기초적인 것을 몰라서 그런지 int i = 0; member.setId(++i); 위 코드로 바꿔도 가능할지 궁금해져서 확인해보았는데요. ++i에 에러표시가 뜨기에 자료형 문제인 것 같아서 long i = 0; member.setId(++i); 로 다시 바꿔 run 해보았는데 작동은 되지만 멤버가 하나밖에 저장되지 않더라고요. (예: spring1, spring2 등록 -> id=1인 spring2 만 저장됨) 그냥 숫자형과 sequence와 다른 점이 있나요?
안녕하세요 선생님 좋은강의 잘듣고있습니다! 웹브라우저가 http요청메시지를 보내면 이것을 기반으로 request/response객체가 생성된다고 하셨는데 이때 처음 생성된 response객체는 정보가 없는 비어있는 객체 상태이고 helloServlet객체가 실행이 되면서 response객체에 정보가 채워진다고 볼 수 있나요? 그리고 Servlet을 그냥 service()로직을 수행하는 싱글톤 객체라고 이해하면 될까요?
안녕하세요! 항상 강의 잘 듣고있습니다:) 스프링 관련해서 프로젝트를 하다가 두 지점사이의 거리를 계산하는 쿼리를 짤 일이 생겼습니다. (예: 내 위치에서 반경 5km이내에 있는 장소들을 가져오기 등) 그래서 QueryDsl 이나 Jdbc Template 으로 SQL 내장 함수를 호출하여 만들려고 했는데 제 경우에는 각 장소의 위경도가 암호화 되어있고 이걸 복호화 해서 거리계산 해야하는데 쉽지않더라고요ㅠㅠ 그래서 문득 생각해보니 이 기능은 전체 데이터를 가져온 다음 차라리 자바 코드로 필터링 하면 더 코드짜기 쉽지 않을까 하는 생각이 들었습니다. [질문] DB SQL where 로 필터링 해서 가져오는 것과 자바코드로 필터링 하는 것 두 방법간에 성능차이가 얼마나 나는지 궁금합니다 (물론 일반적으로는 RDBS 가 더 최적화 되어있을 것 같긴 하지만 실무에서 자바로 필터링하는 경우가 있는지도 궁금합니다) 좀 두서없이 쓴것 같은데 읽어주셔서 감사합니다ㅠ
만약에 실전1같은 사이트가 있는데, 이제 여기서 이미지정보가 추가되어서 상품 이미지가 보여지는 사이트가 있다고 가정하면, 그 이미지는 DB에 넣어서 상품정보와 같이 가져와야하는건가요 아니면 웹서버에 폴더를 따로 만들어서 거기에서 가져와야 하는 건가요?? 만약에 둘다 가능하다면, 최신 트렌드또는 이쪽으로 공부할수 있는 구글링 키워드 부탁드려도 될까요?
선생님 강의를 현재까지 그대로 따라했는데 @WebServlet("/memberInsert.do") 으로 줬는데 제 경우에 계속 왜 404 뜨면서 없는 jsp 로 갈까요.. (콘솔창에 에러는 안나옵니다..)그리고 선생님이 실행하는 방식이 아닌 저렇게 run as로 하면 안되나요? 오히려 선생님이 하시는 대로 127.0.0.1 로컬호스트 들어가니까 안되더라구요.. 마지막으로 혹시 소스코드 pdf 파일 말고 zip파일이나 이런거로 올려주실수 있을 까요.. 에러 났을때 비교해보고 확인해보고 싶은데 pdf에서 복사하면 ㅁㅁㅁ 이런식으로 복사가 제대로 안되네요..
Exception opening port "8082" (port may be in use), cause: "java.net.BindException: Address already in use: NET_Bind" [90061-200] 포트 pid 찾아서 taskkill 돌리고 다시 h2.bat 실행해도 계속 뜹니다.... 사용자폴더에 .h2.~~.properties파일도 없어서 포트도 못바꾸고 있는데 무엇을 잘못했을까요 ㅠㅜ "8082" (port may be in use), cause: "java.net.BindException: Address already in use: NET_Bind" [90061-200] 포트 pid 찾아서 taskkill 돌리고 다시 h2.bat 실행해도 계속 뜹니다.... 사용자폴더에 .h2.~~.properties파일도 없어서 포트도 못바꾸고 있는데 무엇을 잘못했을까요 ㅠㅜ 윈도우OS고, java SE 1.8과 java SE 11 둘다 설치돼있으며 환경변수는 11로 바꿨습니다 혹시 해결하기가 어렵다면 H2를 건너뛰거나 다른 DB로 대체할 수 있을까요?