[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요. 서비스 계층에 대해 질문이 있습니다. 강의 내용에선 서비스는 비즈니스 로직을 처리하는 역할이라고 해 주셨고, 저도 계속 스프링의 전체적인 흐름은 컨트롤러 -> 서비스 -> DB접근 계층으로 설계해놓고 가는걸로 알고 있었습니다. [상황] 최근 취업한 회사에서 제가 맡게되는 시스템의 코드도 강의 내용처럼 컨트롤러 -> 서비스 -> DB접근 계층으로 설계되어있을줄 알았는데, 코드를 보니 흐름의 설계가 컨트롤러 -> 서비스 -> 프로세스 -> DAO 더라구요. (시스템은 10년이상 되었고, 전자정부1 버전인 것 같습니다.) 서비스는 단순히 프로세스 클래스의 메서드를 호출하고, 그 값을 바로 리턴만 해주는 형식으로 작성되어 있습니다. 예시) @Service("XXXService") public class XXXServiceImpl implements XXXService { @Resource("XXXProcess"); private XXXProcess xxxProcess; // 구현체인 XXXProcessImpl 을 주입받는 인터페이스 타입 입니다. public List method() { return xxxProcess.method(); } } 위처럼 작성되어 있던 것 같아요. 그래서 실질적인 비즈니스 로직은 프로세스 클래스 에 있습니다. 어노테이션은 Service, Process 클래스 모두 @Service 라고 붙어있었습니다. [궁금한 점] 왜 서비스에 로직을 넣지 않고 단순히 호출만 하는 계층으로 만들고, 굳이 프로세스 라는것을 하나 더 만들어서 여기에 비즈니스 로직 을 작성하는 식으로 설계를 한 것인지 궁금해서 선배님께 물어봤는데, 오래전 시스템 만들어질때 설계하신 분이 아니다보니 확실한 답을 못 주시는 것 같더라구요. 강사님께서는 SI부터 현재 서비스기업 기술이사까지의 경험이 있으신 분이기에 시원한 답을 주실 것 같아서 질문 드립니다... 질문이 계층에 대해 설명해주신 강의내용과 관련된 질문이라고 판단해서 올리지만, 혹시 관련없는 질문이라면 죄송합니다.
혼자 풀어보면서 2중 for문으로 풀어봤는데 혹시 반례가 있는지 궁금해서요. 강의 정말 재밌게 듣고 있어요! :) function solution ( s , t ) { let answer = []; // time complexity : O(n^2) let tIndicies = []; for ( let i = 0 ; i < s . length ; i ++ ) { if ( s [i] == t ) tIndicies. push (i) } for ( let i = 0 ; i < s . length ; i ++ ) { let min = Number . MAX_SAFE_INTEGER ; for ( let j = 0 ; j < tIndicies. length ; j ++ ) { let position = Math . abs (i - tIndicies[j]); if (min > position) min = position; } answer. push (min); } return answer; } let str = "teachermode" ; console . log ( solution (str, 'e' ));
Spring Initializer을 이용하여 프로젝트 생성 후 실행 시 'invalid source release: 11' 에러메시지가 출력되는 사항에 대한 내용 공유드립니다. 제가 겪었던 문제였으며, 아래 기재된 링크들을 참고하여 해결하였습니다. [Google 검색 단어: spring boot Cause: invalid source release: 11] https://milenote.tistory.com/63 https://blog.naver.com/PostView.naver?blogId=tofhadl529&logNo=222374497101&from=search&redirect=Log&widgetTypeCall=true&directAccess=false
안녕하세요 김영한 개발자님! 강의를 따라하던 중에 오류가 생겨서 질문 남겨요 AllBeanTest 코드에서 실행하면 널포인트 에러가 발생하는데 혹시 어디가 문제 있는걸까요...? 코드상 오류인줄 알고 찾아봤더니 코드 오류는 없는 것 같습니다. soutv로 찍으면 저는 fix가 아니라 rate로 찍히는데 혹시 이게 문제일까요? 감사합니다. + 추가 ) discountService.discount(member, 10000, "fixDiscountPolicy")에서 fix를 rate로 변경해보니까 정상적으로 실행됩니다. 이게 문제였을까요? 그렇다면 fix는 왜 안될까요? @component를 rate에만 작성하고 fix에는 작성하지 않은 상태입니다ㅠ + 해결(?) fixDiscountPolicy에 @Component를 하고 rate에는 지우니까 discountService.discount(member, 10000, "fixDiscountPolicy") 경우에도 잘 작동합니다. 맨 처음에 fixDiscountPolicy에 @Component가 안되어 있어서 널포인트 에러가 발생한거 같은데 제 생각이 맞을까요? + 마지막) 왜 개발자님처럼 fix랑 rate가 동시에 안되나 했는데, 다른글에서 orderServiceImpl에 있는 @Component 지우면 해결된다는 글 보고 해결했습니다! 의문점 다 해결됐습니다 감사합니다!!
총 3장의 이미지를 넣어서 parallax 로 h2는 위에서 아래로 텍스트가 내려오고 p는 아래에서 위로 텍스트가 올라오는 효과를 넣은 슬라이드를 만들었는데요 이 효과가 맨 처음 화면 뜬 상황에서는 작동이 안되고 꼭 한번 슬라이드가 실행된 후에야 작동이 되더라구요 처음 화면 떴을때부터 텍스트 애니메이션이 작동되게 하는 그런 방법이 궁금합니다. < div class = "uk-position-relative uk-visible-toggle uk-light " tabindex = "-1" uk-slideshow = "animation: fade; autoplay: true; autoplay-interval: 3000; " > < ul class = "myslide uk-slideshow-items uk-grid-match" uk-height-viewport = "min-height: 300" > < li > < img src = "images/image01.jpg" uk-cover > < div class = "uk-position-center uk-position-small uk-text-center" > < h2 uk-slideshow-parallax = "y: -150,0,0; opacity: 1,1,0" > Heading </ h2 > < p uk-slideshow-parallax = "y: 100,0,0; opacity: 1,1,0" > Lorem ipsum dolor sit amet. </ p > </ div > </ li > < li > < img src = "images/image02.jpg" uk-cover > < div class = "uk-position-center uk-position-small uk-text-center" > < h2 uk-slideshow-parallax = "y: -150,0,0; opacity: 1,1,0" > Heading </ h2 > < p uk-slideshow-parallax = "y: 100,0,0; opacity: 1,1,0" > Lorem ipsum dolor sit amet. </ p > </ div > </ li > < li > < img src = "images/image03.jpg" uk-cover > < div class = "uk-position-center uk-position-small uk-text-center" > < h2 uk-slideshow-parallax = "y: -150,0,0; opacity: 1,1,0" > Heading </ h2 > < p uk-slideshow-parallax = "y: 100,0,0; opacity: 1,1,0" > Lorem ipsum dolor sit amet. </ p > </ div > </ li > </ ul > < a class = "uk-position-center-left uk-position-small uk-hidden-hover" href = "#" uk-slidenav-previous uk-slideshow-item = "previous" ></ a > < a class = "uk-position-center-right uk-position-small uk-hidden-hover" href = "#" uk-slidenav-next uk-slideshow-item = "next" ></ a > </ div >
안녕하세요 강의 관련 궁금한 점들이 있습니다... 1.프로세스들의 우선순위는 어떤 방식으로 정해지는 것인가요 ? 2. 운영체제가 ‘ 준비상태의 다중큐 ’ 를 참조해 그 안에 들어있는 프로세스들 중 적당한 프로세스를 선택해 실행상태로 전환시킨다고 들었는데 적당한 프로세스를 고르는 기준은 정확히 어떻게 되는지 , 우선순위가 영향을 주는지 궁금합니다 . 3. CPU 스케줄러와 운영체제는 완벽한 동의어인가요 ? 4. FIFO 알고리즘의 단점 중 , I/O 작업이 있을 경우 CPU 는 I/O 작업이 끝날 때까지 쉬고 있기 때문에 CPU 사용률이 떨어지는 것이 있다고 들었습니다 . 그런데 대기상태의 경우 , 특정 프로세스가 입출력 요청을 하면 입출력이 완료될 때까지 CPU 를 기다리게 하는 건 굉장히 비효율적이라 입출력 요청을 한 프로세스를 대기상태로 두고 다른 프로세스에게 CPU 를 할당한다고 들었는데 FIFO 의 경우에는 1 개 프로세스의 완전 종료 전까지 다른 프로세스들이 실행될 수 없어서 그런 것인가요 ? 그렇다면 FIFO 알고리즘의 경우에는 대기 상태가 존재하지 않는 것인가요 ? 5. 대기 상태의 경우 입출력 작업이 완료되면 대기상태에 있던 프로세스에게 CPU 할당 기회를 준다고 들었는데 기회를 준다는 것은 반드시 실행상태로 즉시 전환되는 것은 아니라는 의미인가요?
18:36초에 서브툴에 귀를 클릭하시는데 두개였던 귀가 어떻게 하나가 되나요? 저 두개였던 삼각형이 갑자기 하나가 돼서요. 저는 귀를 deformer하는데 미러된 거랑 같이 잡혀서 수정하기 불편해요. 그리고 손가락이 한 오브젝트에 세개가 들어가있는데 원형을 세번 불러서 merge하신건가요?
안녕하세요 printf("Input a color name (empty line to quit):\n");을 받고 입력을 할 때 빈칸인 상태로 엔터를 누르면 프로그램이 끝나도록 하는 코드를 작성하는 과정에서 난항을 겪어서요. 몇 가지 여쭤보려고 합니다. 제가 시도했던 것들은 밑에 두 가지입니다. if (strcmp(choice, '\0') == color_is_found) break; if (choice == NULL) break; 첫 번째는 문자열이랑 문자를 비교해서 실행이 제대로 안된다는 것을 깨달았고, 두 번째도 문자열이랑 0인 NULL은 == 연산자로는 비교를 할 수 없어서 제대로 작동이 되지 않았다고 생각합니다.(제가 찾아보고 내린 결론이라 맞는지도 궁금합니다) 그래서 if (scanf("%[^\n]%*c", choice) != 1) break;를 하면 아무것도 입력안하고 엔터를 입력했을 때 프로그램이 종료되는 것은 확인했지만 왜 위 코드가 이러한 기능을 수행하는지 아직 이해가 되지 않습니다. 질문은 두 가지입니다! 1. 제가 시도했던 것들이 실패한 이유에 대해 제가 생각한 결론(노랑 형광색 부분) 이 맞는 것일까요? 2. 왜 if (scanf("%[^\n]%*c", choice) != 1) break;를 하면 첫입력에 엔터를 입력했을 때 프로그램이 종료가 되는건가요? [^\n]이 \n이 나올 때까지 입력을 받는다는 것과 %*c가 마지막글자(\n)을 없앤다는 것도 알고 있지만 왜 break로 연결이 되는지는 아직 이해를 못했습니다. 설명을 해주실 수 있을까요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 선생님, 선생님 덕분에 segmentation 과제를 재미있게 수행하고 있습니다 제가 하고 있는 과제 중에 큰 object와 작은 object를 동시에 판별하는 task가 있습니다 비유를 하자면 콩이 큰콩과 작은콩이 섞여 있고 나머지 특성은 동일한 콩이라 class는 한개로 했습니다 (큰 콩과 작은콩은 많으면 지름 기준 최대 10~20 배 차이) 그런데 작은 콩은 많으면 1000~2000 개씩 있고 큰 콩만 있는 이미지 (30~100 개)도 있습니다 또 쪼개진 콩도 있습니다 (쓰고 나니까 task가 너무 어렵네요...) 그래서 제가 이문제를 잘 맞추기 위해 접근한 방식은 mmdetection에서 max object를 3000 개로 늘리고 roi 제안은 6000개로 늘렸습니다 (cfg.model.test_cfg.rcnn.max_per_img = 3000 #default 100 cfg.model.test_cfg.rpn.nms_pre = 6000 # default 1000 cfg.model.test_cfg.rpn.max_per_img = 6000 # default 1000) 그 다음에 anchor generator stride라는것이 중요하다는 것을 찾아서 기존 [8]에서 [1, 2, 4]로 바꿨습니다 (구글 검색해서 찾은건데 사이트를 지금은 못 찾겠네요;;;) (cfg.model.rpn_head.anchor_generator.scales = [1, 2, 4] # default [8]) 그랬더니 어느정도 작은 입자를 잘 찾는 모델을 만들었습니다만 문제는 큰입자가 있을때 큰입자의 일부분을 쪼개서 작은입자로 찾는 문제가 발견되었습니다 여기서 여쭈어 보고 싶은 점은 1) anchor generator stride 의 정확한 의미가 궁금합니다 제가 이해하기로는 피쳐맵에서 anchor 를 찾는 stride 같은데 (8로 하면 8 grid에 한번 4면 4 grid에 한번) 이걸 1, 2, 4로 하는 것은 무슨 의미인지 아시나요? 2) 큰입자를 찾으면 작은입자를 못잡고 작은입자를 찾으면 큰입자를 못잡는 (잡긴하는데 실제로는 쪼개진 영역이 아닌데 쪼개서 잡는 영역 존재) 문제가 발생하는데 두가지 task를 동시에 하는것이 가능할까요? 3) 다른 모델 (efficient det 등?)을 써야할지 아니면 다른 일반적인 해결책인 있는지 문의드립니다 감사합니다!!