안녕하세요! 일전에, ㅡㅡ 고객쪽에서 MemberRepository m = new MemoryMemberRepository(); 라는 예제에서는 Memory에서 오류가 발생했을 때, JdbcMemberRepository();를 사용하도록 코드를 짜고 싶습니다. 그렇다면, client쪽에서 try{ MemberRepository m = new MemoryMemberRepository(); } catch() { MemberRepository m = new JdbcMemberRepository(); } ㅡㅡ 위와 같은 질문을 드렸고, List, Map강의를 보라하셔서 봤습니다.이번 강의에 나온 discount코드를 가지고 추가적인 기획과 함께 코드를 짜보았습니다. 1. discountCode는 "rate"가 우선순위 1위이고, price가 0이면 오류를 반환하다. 2. 1번 오류가 발생했을 때, "fix" discount 로직을 실행한다. public int discount(Member member, int price, String discountCode) { // ... 로직은 강의와 동일 } ㅡㅡㅡㅡㅡ discount를 실행하는 구현체는 아래와같습니다. class Something { public doDiscount() { try{ discountService.discount(..., "rate") }catch{ discountService.discount(..., "fix") } .... } } 결론적으로 제가 궁금한건, 같은 추상화로 구현된 로직 중, 첫번째 로직이 실패했을때 두번째 로직을 실행시켜라 라는 상황은 try, catch로 구현하는 것이 맞는지 궁금합니다
안녕하세요. 강의 잘 듣고 있습니다. docker-compose up 실습을 위하여 강의내용처럼 `.yml` 파일에 코드를 작성하고 `docker-compose up` 명령어를 입력했는데 `.yml` 파일 안에 문자열(String) 타입이 아닌 `WORDPRESS_DB_HOST: db:3306`이 포함되어 있다고 invalid 에러가 뜹니다. 강의내용대로 한 것 같은데 뭐가 문제일까요... docker-compose.yml 소스 코드 version : '2' services : db : image : mysql:5.7 volumes : - ./mysql:/var/lib/mysql restart : always environment : MYSQL_ROOT_PASSWORD : wordpress MYSQL_DATABASE : wordpress MYSQL_USER : wordpress MYSQL_PASSWORD : wordpress wordpress : image : wordpress:latest volumes : - ./wp:/var/www/html ports : - "8000:80" restart : always environment : - WORDPRESS_DB_HOST : db:3306 - WORDPRESS_DB_PASSWORD : wordpress 에러 메시지 ❯ docker-compose up ─╯ ERROR: The Compose file './docker-compose.yml' is invalid because: services.wordpress.environment contains {"WORDPRESS_DB_HOST": "db:3306"}, which is an invalid type, it should be a string
10:54의 내용을 10:57에 심플하게 바꿀 수 있다고 해주셨는데요 클래스 내부에 클래스가 들어잇는 문법을 처음봐서 찾아보려는데 키워드를 잘모르겠네요 혹시 '메타클래스'라는게 맞을까요? 이렇게 저렇게 찾아봐도 메타클래스에 관한 부분인 것 같긴한데, 또 찾는 자료들에서는 설명해주신 방식으로 메타클래스를 사용하는 걸 못봐가지구요
1. A라는 쓰레드가 Push에서 락을 잡는다.(다른애가 Push를 못하는 상황) 그리고 _jobQueue에다가 일감을 밀어 넣는다. 2. lock 안에서 flush가 true로 바뀌어서 Flush함수로 간다. 3. A쓰레드는 Flush함수에 들어와서 while문안에서 Pop을 한다. 4. Flush에서 Pop을 하는 순간 A는 락을 잡고 "_jobQueue.Count == 0" 이 될때까지 retrun _jobQueue.Dequeue();를 하면서 Flush의 while문을 돌게된다. ********* <질문> A라는 쓰레드가 Push에 와서 최초의 _flush를 true로 바꾸어 주어서 모든 쓰레드들이 접근이 가능한 _flush는 true인 상태여서 A가 Flush함수를 실행하러 계속 안에 있고 다른 B라는 쓰레드가 Push에와서 락을 잡고 일감을 밀어 넣는다고 해도 _flush는 true라서 Push안의 flush를 true로 바꿀 수 없어서 if (flush)에 조건이 안맞아 락만 걸고 일감을 밀어넣고 나오고 A만 Flush를 실행할 수 있고 A만 Flush함수에 계속 상주해 있고 다른애들이 계속 일감만 밀어 넣어주는 방식인가요?? Pop에서 락을 건 이유는 그냥 데이터를 안전하게 꺼내기 위함이고... 이렇게 이해했는데 맞을까요??
안녕하세요 FreeRTOS 강의를 새로 수강하게 된 문수영이라고 합니다. 업무 상 RTOS 환경에서 개발을 할 예정이라 RTOS의 기본을 익히기 위해 강좌를 수강하였고 기대가 많이 됩니다. 개발환경 구축을 위해 NUCLEO-64 (STM32F104RB) 보드를 구입하였고 pc에 연결한 다음 STM32CubeIDE를 실행하니 Firmware update를 하라는 안내문이 뜨더군요. 그래서 해당 IDE에 내장된 STLINKUpgrade라는 프로그램을 실행하였더니 firmware version을 확인할 수 없다는 메시지가 출력되면서 update 버튼이 비활성화된 상태로 보입니다. (아래 그림 참조) 펌웨어 업데이트를 하지 않은상태에서는 예제 프로그램의 디버깅이나 실행이 되지 않아 먼저 업데이트를 해야 하는데 위와 같은 에러가 발생하여 학습 진도가 나가지 못하고 있는 상태입니다. 위 문제의 원인은 무엇인지, 해결방법은 무엇인지 알려 주시면 감사하겠습니다.
QueryFailedError: Field 'createdAt' doesn't have a default value 이런 에러가 계속 떴습니다. 그래서 포스트맨으로 이메일, 비밀번호, 닉네임을 적어서 보내도 저 에러 메시지가 떠서 구글링 해서 찾아보니 createdAt, updatedAt때문에 자꾸 에러나는 것 같았습니다. 그래서 @Column ( "datetime" , { name : "updatedAt" }) updatedAt : Date; 에서 @CreateDateColumn ({ name : 'updatedAt' , type : 'datetime' }) updatedAt : Date; 로 바꿔보니까 잘 되었습니다. (updatedAt도 바꿈) 왜이럴까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. response객체를 설정할 때, status-line을 먼저 설정하시고 - header 설정 후- messageBody를 설정하셨는데 혹시 이 순서를 지키지 않으면 설정이 제대로 되지 않는지 궁금합니다. 예를 들어 저의 경우는 response.getWriter().write("ok"); 문장 이후에 response.setCharacterEncoding("utf-8"); 을 작성하였는데, 실제 응답 메세지의 인코딩 방식으로 utf-8이 적용이 되지 않았습니다. 그래서 순서를 지켜야 하는건지 궁금했습니다. 감사합니다.
안녕하세요 실무에서 사용할 때 코드 래핑을 보통 하는데, 코드 래핑 이라는게 libary dependencies를 줄이기 위해서 기존 코드를 한 번 wrap(래핑)한다라고 알고 있습니다. 혹시 실무에서 사용하시는 래핑 기법들이 있으신지 알고 싶습니다. 이렇게 질문 드리는 이유는 만약에 보일러 플레이트를 만들어 놓고 사용하다가 나중에 libary가 업데이트 되서 버전이 올라가면 그 때, library 버전도 업데이트를 시키면 오류가 많이 나올 수 있을꺼 같아서 질문드립니다. 가령 만들어주신 boilerplate에서 래핑이 되어 있지 않는다면, 수 많은 dependencies가 있을텐데, 특정 사용하는 library가 업데이트 되서 만약 버전업을 실수로 하거나 했을 때 전체적으로 문제가 발생 할 수 있을꺼 같아서요. 사용하는 라이브러리의 버전을 바꿔주지 않는 다면 문제는 없을까요?
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
안녕하세요! 영상을 보며 공부중인 학생입니다! 개인적인 시간상 전 part 영상을 안보고 지금 part 영상으로 건너뛰어 시작하였습니다. Util과 File 부분이 참조가 되지 않아 진행이 멈춰있는 와중에 File은 파일 생성과 관련되어 있는 것 같아 찾아보니 using System.IO; 를 안해서 나오는 현상이여서 해결 하였으나 Util은 어떤 using을 해줘야 하는지 모르겠습니다.
질문은 아니고 Sysinternal Suite를 처음 사용하시는 분들이 모르실까봐 추가적인 정보를 작성해 주셨으면 합니다. 강의 내에서 strings.exe를 이용하는데 Sysinternal Suite를 처음 사용하시는 경우 강의처럼 명령어를 치면 제대로 된 결과값이 안나옵니다. 제대로 된 결과 값이 나오기 위해서는 -accepteula 옵션을 추가 해야합니다. 그 뒤로는 강의 처럼 -accepteula 옵션없이 명령을 실행해도 결과가 잘 나옵니다.
[질문 내용] 안녕하세요 김영한 개발자님! 항상 강의 잘 보고 있습니다. 다름이 아니라 0:45분 경에 @GetMapping("link")부분에서 "/link"가 아닌 "link"로 작성해도 잘 동작하는 것이 궁금해서 질문 남겨요. @RequestMapping("/basic")부터 따지면 /basic/link가 되어야 될 것 같은데 /link 앞에 '/'를 없애도 스프링이 자동으로 삽입해 주는 건가요? 지난 강의에서 /basic/과 /basic이 동일하게 동작한다고 말씀하신 것 같은데 이와같은 이유때문일까요? 감사합니다!