묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨비개발자를 위한 RPA 강의 (UiPath 기본편)
ExtractDataTable
안녕하세요,ExtractDataTable 저장된 전체 데이터 출력 방법에 대해 알고 싶습니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
busrefresh로 gateway.ip 변경 시 user-service 내 WebSecurity 설정 자동 반영 여부
강사님 안녕하세요. busrefresh로 설정값을 변경 후에 각 마이크로서비스에서 해당 값을 잘 읽어오는지 테스트 하던 중 궁금한 점이 생겨 문의드립니다.token.secret 값을 변경하면 gateway나 user microservice에서 매번 값을 새로 참조하기 때문에, 변경된 값을 잘 읽어올 수 있었는데요.user service의 WebSecurity에 설정된 gateway의 IP 값이 변경된 경우, busrefresh를 통해 gateway.ip 값을 변경하여 적용하고 싶은데요. 강의 코드대로 설정했는데, WebSecurity에서 설정한 IP 설정값은 busrefresh로 값을 업데이트해도 반영되지 않아 문의드립니다. 기존 코드로는 uri path 별 동적 IP 허용 설정 등이 불가능할까요?>>> 테스트 로직처음 로딩 시 실제 gateway ip로 설정 --> user service 모두 정상 호출 가능gateway.ip 값을 임의로 수정하여 busrefresh --> 호출 실패를 원했지만 user service 모두 정상 호출 가능.user service에서 /health_check api 호출 시에는 변경된 gateway.ip 값이 잘 나옴>> WebSecurity.java protected void configure(HttpSecurity http) throws Exception { http.csrf().disable(); http.authorizeRequests() .antMatchers("/actuator/**") .permitAll() .antMatchers("/**") .hasIpAddress(environment.getProperty("gateway.ip")) // 값 변경 시 반영되는지 .and() .addFilter(this.getAuthenticationFilter()); } >> 설정 파일token: expiration-time: 860000 secret: 1231231232222 gateway: ip: 1.1.1.1 # 이 값을 변경하고 바로 security 적용 감사합니다.
-
미해결풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, 배포까지) [풀스택 Part3]
도커 컨테이너 bash 터미널에서 enter가 안쳐집니다
도커 컨테이너 이미지 조사하기 강의11분 가량 ubuntu@ip-172-31-6-140:~$ docker run -d -p 9999:80 --name mywebserver --rm myweb을 통해 이미지 컨테이너를 실행 시킨후 exec 명령어를 통해 커널에 접근해서 명령어를 치고 있는데 enter가 안되네요...!ctrl+c 시그널은 되는거 같은데 (커널(터미널)에서는 나가집니다)이상하게 enter을 쳤을 때 명령어가 입력이 안됩니다 구글링을 해봤으나 이 경우 키워드를 잘 몰라서 잘 검색이 안되네요...!조언을 주시면 좋을 것 같습니다.
-
해결됨비개발자를 위한 RPA 강의 (UiPath 입문편)
데이터 스크래핑
선생님,제가 보는 스튜디오에는 상단에 데이터스크래핑이 없는데요,버전이 바뀐걸까요?
-
미해결JIRA를 활용해 더 효과적으로 프로젝트 협업하기
제가 운영중인 시스템의 Jira 프로젝트를 만들고 있습니다. 도움을 부탁드려요~
안녕하세요.대기업에서 시스템을 운영중인 PM입니다.저는 시스템 운영도 하지만, 개선개발도 많으며멀리 다른 쪽에 있는 개발자와 협업을 하기 위해 JIRA를 사용하고자 합니다.다음과 같은 상황일 때, 칸반보드를 쓰는게 좋을거라고 생각되는데요. JIRA를 어떻게 구성하면 좋을지 조언을 부탁드립니다. JIRA SOFTWARE(v8.20)를 쓰고 있으며 로그맵 기능은 PLAN이라는 기능을 쓰고 있습니다.제가 맡고 있는 시스템은 크게 업무적으로 MY 시스템과 MP 시스템으로 나누어져 있습니다. MY 시스템에는 약 10여개의 단위 업무(회원관리,...등)가 존재합니다. MP시스템도 마찬가지구요. : 콤포넌트를 MY, MP, 공통 3개로 등록하는게 좋을까요? 예를 들어 MY 시스템 내 회원관리 업무가 있는데, 회원관리 기능에 A기능을 추가해달라는 고객의 요구사항 이 있습니다. 그렇다면 JIRA에서 EPIC STORY TASK를 어떻게 구성해야 로드맵에서 전체적인 개발업무 진행현황도 볼 수 있고, 특정 보드를 만들어 담당자별로 진행중인 개발현황도 볼 수 있을까요? EPIC = 회원관리 업무( 업무 구분) STORY = 회원관리 업무내 A기능 추가요청 TASK = 화면1 개발 (담당자1) TASK = 화면2 개발(담당자2) 이정도면 좋을까요? 특히 저 PM으로서는 개발자 각각의 개발 생산성 및 개발을 얼마나 하고 있는지 실시간으로 모니터링하고 싶습니다. 또한 개발진행 건이 많은지도 칸반보드로 보고 싶습니다.이렇게 하려면 이슈유형을 어떻게 카테고리화 하여 구분하면 좋을까요?이번에는 회원관리 개선 요구사항만 있지만며칠후에는 고객으로 부터 주문관리 개선요구사항이 추가 될 수 도 있습니다. 이러한 상황에서 뭐가 EPIC이고 뭐가 STORY이고 뭐를 TASK로 잡아야 개발자의 개발진행현황 관리 개발 진척관리 개발 생산성 관리를 지라에서 멋있게 상세하게 할 수 있을까요? 선생님의 조언을 부탁드립니다.
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
kubernetes script 파일 강의 - localhost 접근 오류
deployment와 service를 정상적으로 배포했음에도 불구하고 다음과 같이 사이트에 연결할 수 없다고 뜹니다. 전 강의 nginx-deployment도 같은 상황이 발생했습니다. localhost도 해보고 현재쓰고 있는 ip주소도 해봤지만 해결할 수 없었습니다. 방화벽 문제도 아닌 것 같습니다.도움 주시면 감사하겠습니다.
-
미해결실전! Querydsl
2:30초 질문
질문합니다. 동영상과 다르게 작동합니다. 테스트 코드 돌리면 위와 같이 나옵니다.하이버네이트 시퀀스가 없다고 해서Hello 엔터티에 @GeneratedValue(strategy=IDENTITY)를 추가하고 돌렸습니다.깃헙 :https://github.com/InSuChoe/querydsl
-
미해결생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현
안녕하세요. 복습하다가 잘 안되는게 있어서 질문드립니다.
안녕하세요. 스프링 부트 2.7.4 사용중입니다.강의 노트 보고 OpenFeign 버전 확인했는데 강의랑 같은 버전을 사용중이더라구요. 그래서 다시 만들기 했는데Dependencies 에는 들어온게 보이는데 FeignClientExceptionErrorDecoder 를 구현하려고 ErrorDecoder를 했는데 제대로 안들어오는지 해당 패키지가 안보입니다. 이런 경우는 어떡게 해결하는게 좋을지 잘 몰라서 질문드립니다.
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
BuildContext context 질문입니다.
onSettingsPop을 만들기 전에는 잘 따라갔는데, 이후에 복사 붙여넣기 과정에서 of(context)에 에러가 발생합니다.undefined로 떠서 of(context)를 다시 입력해보면, import 'dart.js'가 추가되면서 이 상태가 됩니다.구글에는 import 'dart.js'를 지우면 해결된다고 하는데, 지우면 다시 undefined 상태로 돌아가서 진행이 되지 않습니다.어떻게 해야하나요??
-
미해결더 자바, 코드를 조작하는 다양한 방법
소스컴파일시점에 MagicMojaProcessor가 사용되면 안되는이유
소스를 컴파일하는 시점에 저 annotation이 사용되면안되는데 사용되려해서 에러가 난다는데 왜 컴파일하는 시점에 저 annotation이 사용된다는건가요? 헷갈리네요ㅠㅠ프로세서를 등록하는 과정에서 어노테이션이 사용이 되는데 어노테이션의 생명주기를 source레벨로 해놔서그런건가요?그런데 CLASS레벨로 해놔도 똑같이 안되네요.. 이유를 잘 이해하지 못하겠어요 왜 저 에노테이션이 사용되면 안되는지 궁금합니다소스 컴파일하는 과정에서 MagicMojaProcessor가 동작하려고하는데 그 시점에서는 MagicMojaProcessor가 없어요. 왜 없는거죠?원래는 다음과 같이 동작을해야해요MagicMojaProcessor 컴파일컴파일된 파일을 가지고 META-INF에서 사용근데 2->1 로 과정이 일어나기때문에 오류가 발생한다는얘기인가요?
-
해결됨웹 개발자와 정보보안 입문자가 꼭 알아야 할 웹 해킹 & 시큐어 코딩
dom-based xss 공격실습 관련 오류
dom based xss 실습도중 dom.php 코드 수정 똑같이 했는데 url에서 값을 넣어봐도 계속 Page 만 뜨는데 어디서 잘못한게 있을까요??<오류내용><dom.php>
-
미해결Vue.js 완벽 가이드 - 실습과 리팩토링으로 배우는 실전 개념
깃 권한 요청드립니다
인프런 아이디 : sswsjw인프런 이메일 : sswsjw@naver.com깃헙 아이디: s48005623@gmail.com깃헙 Username: Seosang1
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
깃허브 권한 요청드립니다.
인프런 아이디 : rabong7769@gmail.com인프런 이메일 : rabong7769@gmail.com깃헙 아이디 : didgmltn7769@naver.com깃헙 Username : Rabongbong
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
React Natvie메인화면 구현시 Axios Error
위와 같이 오류가 납니다.페이지 연결은 되었고, 해당 URL을 Click하면 위와 같이 오류메시지가 나타납니다. axios는 새로 깔았는데도 안되네요.혹시나해서 서버주소를 원래의 localhost:8080으로 수정해보았으나 여전히 데이터를 받아오지 못하고 있습니다. ngrok에서 나타나는 URL로 포스트맨에서 Get요청을 보내니 잘 받아집니다.
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
Node 기반 jenkins 배포
node 애플리케이션 기반으로 강의 지지난주에 나온다고 들었는데 아직 소식이 없는데, 릴리즈 진행이 되고 있는건가요?
-
미해결스프링 핵심 원리 - 고급편
안녕하세요 강사님! 강의 너무너무 도움 되고 잘 들었습니다!! 질문이 있습니다! JDBCTemplate로 batchUpdate시에 동시성문제가 생기나요?
JPA에선 아이디 체번방식에따라서 bulkInsert/update를 지원하지않다보니 JDBCTemplate에 batchUpdate를 통해 로직을 작성하게됐습니다. 이때 동시성 문제를 고민하지않을수가 없어서 찾아보니 JDBCTemplate도 내부적으로 ThreadLocal을 사용하고 있었습니다. 그렇다면 JDBCTemplate도 동시성문제를 고민하지 않아도 되는 부분일까요?궁금해서 JDBCTemplate의 코드를 뒤져보다가 DataSourceUtils.getConnection(ds) 내부에서TransactionSynchronizationManager.getResource(ds)를 통해 ConnectionHolder를 가져오는데TransactionSynchronizationManager.getResource(ds)를 더 들어가 보면ThreadLocal <Map <Object, Object>>로 되어있는 resources를 가져와 ds를 키로 ConnectionHolder를 가져오는 것을 볼 수 있었습니다. 그래서 운영단계로 넘어가도 동시성문제가 없을것 같은데 강사님 생각은 어떠신지 궁금합니다!
-
해결됨호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)
Spring Boot 버전 2.5.9가 없을 경우
Spring Boot 2.5.9를 선택할 수 없으면2.7.X or 2.6.X로 진행해도 상관없나요?
-
미해결더 자바, 코드를 조작하는 다양한 방법
다이나믹 프록시에서 리플렉션이 어떻게 사용되는거죠?
ParentInterface parentInterface = (ParentInterface)Proxy.newProxyInstance(HelloApplication.class.getClassLoader(), new Class[]{ParentInterface.class}, (proxy, method, args) -> {System.out.println("메소드 수행전에 할일");Object methodResult = method.invoke(new ChildClass(), args);//child라는 class에 args를 모두 넘긴다if(method.getName() == "sayHello"){//메서드 이름에 따라.. 처리를 분류할 수 있으니 다 정의하지 않아도됨 모든 메서드에 대해 기본적으로 정의되는거니까 중복도 피할 수 있음System.out.println("sayHello!");return methodResult;}System.out.println("sayOne!");return methodResult;});parentInterface.sayHello();//클라이언트는 인터페이스타입에 대해 그 메서드를 호출한다 이 인터페이스에 대한 메서드를 호출하면 위에서 정의한대로 프록스 객체를 런타임에 하나 만들어줘서//위에서 정의한 대로의 로직을 타고 클라이언트에게 결과를 전송해준다parentInterface.sayOne(); 지금 인터페이스에 대한 .class정보를 넘겨주고 있어요그리고 Proxy.newProxyInstance메서드로 들어가보면 넘겨준 class정보를 가지고 생성자를 만든다거나 하는것같거든요그런거 자체가 리플렉션을 활용하는 행위인가요?(class이름).class <- 이표현자체는 리플렉션을 활용하는 문장인가요?cglib, 바이트 버디는 리플렉션을 사용하지 않나요?
-
미해결[초급편] 안드로이드 커뮤니티 앱 만들기(Android Kotlin)
추가코드가 있는지 여쭤볼려구 합니다.
강의 오른쪽 구름 모양 아이콘으로 코드를 참고해서 다 완성했는데 강의 내용에 마이페이지 부분이나 홈화면 부분 코드가 없어서 질문드렸습니다 ㅠㅠ!!
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
findByName Test 실습중 질문드립니다.
=========================================1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용]테스트 실습중 괄호 안에 어떤 값을 넣어도 오류가 안 나고 통과가 됩니다..Member result = repository.findByName("이 부분").get(); -------------------------------------------------------------------- // <전체 소스 코드> package hello.hellospring.repository; import domain.Member; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.Test; import repository.MemberRepository; import repository.MemoryMemberRepository; import static org.assertj.core.api.Assertions.*; import java.util.Optional; class MemoryMemberRepositoryTest { MemberRepository repository = new MemoryMemberRepository(); @Test public void save(){ Member member = new Member(); member.setName("spring"); repository.save(member); Member result = repository.findById(member.getId()).get(); Assertions.assertThat(member).isEqualTo(result); } @Test public void findByName(){ Member member1 = new Member(); member1.setName("spring1"); repository.save(member1); Member member2 = new Member(); member2.setName("spring2"); repository.save(member2); Member result = repository.findByName("dsf").get(); assertThat(result).isEqualTo(member1); } }