묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결리눅스 IPC 프로그래밍 - 이론과 실습
강의 순서
안녕하세요! 강의를 듣다가 질문이 있어 남깁니다. 리눅스 입문편을 듣고 회사에서 실무엔 IPC가 도움이 될 거 같다고 해서 바로 IPC 강좌를 듣고 있는데make파일을 통해 이미 개발환경이 세팅이 돼있는 거 같아서요.. 이 부분은 IPC 강의엔 없어서 당황스러워서.. 혹시 어디에 있는 건가요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
해상도
안녕하세요 강의 정말 잘 듣고 있습니다.혹시 해상도는 계속 720 인 건가요?강의 내용 모든 게 다 좋은데 해상도가 ㅠㅠ
-
미해결호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)
ExceptionHandler가 AccessDeniedHandler(Http403Handler)를 먹어버리는 현상
안녕하세요 호돌맨님 강의 항상 잘보고있습니다. 다름이 아니라 실습 중 의도치 않게 동작하는 부분이 있어 질문드립니다. 상황회원 가입 후 로그인이 때 유저의 Role 은 ADMIN메소드 시큐리티로 아래와 같이 자원의 권한 제한@RestController class HomeController { @GetMapping("/user") @PreAuthorize("hasRole('ROLE_USER')") fun user(): String { return "user 접근 가능👁" } @GetMapping("/admin") @PreAuthorize("hasRole('ROLE_ADMIN')") fun admin(): String { return "admin 접근 가능 👨💼" } }이 때ExceptionHandler로 Runtime예외를 캐치해 응답을 주고 있습니다.동시에 커스텀한 403핸들러를 HttpSecurity에 끼워 넣어주었습니다.// ControllerAdvice @ExceptionHandler(Exception::class) fun handleRuntimeException(ex: Exception): ResponseEntity<ErrorResult> { logger.error("ex", ex) return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR) .body( ErrorResult( code = "500", message = ex.message, ) ) } // SecurityConfig @Bean fun securityFilterChain(http: HttpSecurity): SecurityFilterChain { return http // .. other config.. .exceptionHandling { e -> e.accessDeniedHandler(Http403Handler(objectMapper)) e.authenticationEntryPoint(Http401Handler(objectMapper)) } .build() } 기대하는 동작ADMIN으로 로그인한 유저가 USER 자원에 접근하면 아래와 같이 응답{ "code": "403", "message": "접근할 수 없습니다.", "validation": null }실제 동작{ "code": "500", "message": "Access Denied", "validation": null } ControllerAdvice에서 Runtime예외를 처리하지 않는다면 의도대로 403이 응답되는데, ControllerAdvice에서 예외를 포괄적으로 처리하게 되면 403이 응답되지 않습니다. 혹시 이런경우를 겪으신적이 있는지? 따로 해결방법이 있을지 궁금해 여쭙습니다.감사합니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
수정시에 질문있습니다!!!! Editor??
[질문 내용]여기에 질문 내용을 남겨주세요. 저는 지금까지 수정을 시도할때 changeContentsAndtitle 이런 식으로 엔티티단에서 수정을 시도했는데 https://velog.io/@gundorit/Spring-%EC%A0%9C%EB%8C%80%EB%A1%9C-%EB%90%9C-CRUD-Update 이 블로그에 따르면 그것은 별로 안좋고 Editor 를 선언해서 하면 좋다는 식으로 얘기하고 있습니다. 근데 이렇게 하면 영한님이 얘기하셨던 얘기 중에 그런 이야기가 있었습니다. DTO 는 엔티티를 참조해도 되는데 , 엔티티는 DTO 를 참조하지 말라고 하셨습니다.위 블로그에서는 Entity 에서 DTO 를 참조하지는 않는데 Entity 에서 UpdateEditor 를 선언하고 있는데 이런 부분에 문제는 없을까요?? 영한님도 이런 스타일로 하시나요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-L 'a'와 'A'일때의 차이
항상 질 좋은 답변 감사드립니다. 문제코드: https://www.acmicpc.net/source/75348635 질문은 다음과 같습니다. if (alpha[board[ny][nx] - 'a'] != 0) continue;alpha[board[ny][nx] - 'a'] = 1;dfs(ny, nx, cnt + 1);alpha[board[ny][nx] - 'a'] = 0; 에서 'a'일때는 정답처리가 안되지만'A'일때는 정답처리가 되는 이유가 궁금합니다. 제가 생각하기에는 대문자의 아스키코드가 'a'보다 작기때문에 음수가 돼서 정답처리가 안되는 것으로 생각하는데 이렇게 생각하면 컴파일 자체가 안되어야 한다고 생각하기때문에 질문드립니다. 감사합니다. 김지성 올림
-
해결됨깃헙 블로그(Github blog)로 차별화 된 나만의 홈페이지 만들기!
bundle install 오류
이거 bundle install 이 안됩니다 해결방안 좀 알려 주실 수 있나요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
프론트컨트롤러 -V1 강의에서
@WebServlet(name = "frontControllerServletV1", urlPatterns = "/front-controller/ v1/*") public class FrontControllerServletV1 extends HttpServlet { private Map<String, ControllerV1> controllerMap = new HashMap<>(); public FrontControllerServletV1() { controllerMap.put("/front-controller/v1/members/new-form", new MemberFormControllerV1()); controllerMap.put("/front-controller/v1/members/save", new MemberSaveControllerV1()); controllerMap.put("/front-controller/v1/members", new MemberListControllerV1()); } @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("FrontControllerServletV1.service"); String requestURI = request.getRequestURI(); ControllerV1 controller = controllerMap.get(requestURI); if (controller == null) { response.setStatus(HttpServletResponse.SC_NOT_FOUND); return; } controller.process(request, response); } } 이 코드에서 웹에서 url을 입력해서 requestURL에 들어와 그 URL에 맞는 컨트롤러를 호출한다 이거는 이해를 했습니다.근데 프public FrontControllerServletV1() 생성자를 호출해야 하는거아닌가요..?갑자기 여기서 막혀서 이해가안가네요..
-
해결됨따라하며 배우는 노드, 리액트 시리즈 - 챗봇 사이트 만들기
Error: 16 UNAUTHENTICATED: Failed to retrieve auth metadata with error: invalid_grant: Invalid JWT Signature. 에러 발생
4강 - 챗봇 어플리케이션 만들기#3 구조 설명 & textQuery Route 만들기 강의를 듣고 있던 상황입니다.강의 내용을 따라 postman에서 주소 지정 후 send 버튼을 클릭하면,비주얼 스튜디오 코드 터미널 창에 아래와 같은 에러가 발생합니다.Error while processing text query: Error: 16 UNAUTHENTICATED: Failed to retrieve auth metadata with error: invalid_grant: Invalid JWT SignaturedDialogflow 와 google cloud에 작성된 데이터 모두 확인 시 문제가 없어 보이는데,어느 부분을 더 참고 해봐야 할까요? 참고로 console.log(req.body.text)입력 시, text의 값은 제대로 출력됩니다. router.post("/textQuery", async (req, res) => { console.log(req.body.text); const request = { session: sessionPath, queryInput: { text: { // The query to send to the Dialogflow agent text: req.body.text, // The language used by the client (en-US) languageCode: languageCode, }, }, }; try { const responses = await sessionClient.detectIntent(request); console.log("Detected intent"); const result = responses[0].queryResult; console.log(` Query: ${result.queryText}`); console.log(` Response: ${result.fulfillmentText}`); res.send(result); } catch (error) { console.error("Error while processing text query:", error); res.status(500).json({ error: "Internal server error" }); } });
-
해결됨독하게 시작하는 C 프로그래밍
문자열처리 함수소개강의에서 질문 있습니다.
강의 감사히 듣고 있습니다.질문 두 가지 있습니다.1.strcat_s 함수를 설명하실 때 strcat_s(szPath + 17 + 4, sizeof(szPath) - 25, "C programming");이라고 해주셨는데 22번째 인덱스부터 시작하여 널문자를 찾고 이어붙이는 구문이라면 전체 배열의 크기도 sizeof(szPath)-21로 조정을 해야 하는 것 아닌가요? 2.strcat_s(szPath + 17 + 8, sizeof(szPath) - 25, "C programming");에서 오류가 나는 것은 문자열 배열 넘어의 메모리를 시작값으로 설정했다는 것인데 확인할 수 있는 null 이 없기 때문인 건가요?감사합니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
14분 50초 일대다 페치조인 질문
public static void main(String[] args) { EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello"); EntityManager em = emf.createEntityManager(); EntityTransaction tx = em.getTransaction(); tx.begin(); System.out.println("zzzzzzzzzzzzzzzzzzzzzzzzzzzz"); //비영속 try{ Team teamA = new Team(); teamA.setName("teamA"); em.persist(teamA); Team teamB = new Team(); teamB.setName("teamB"); em.persist(teamB); Member member1 = new Member(); member1.setUsername("member1"); member1.setTeam(teamA); em.persist(member1); Member member2 = new Member(); member2.setUsername("member2"); member2.setTeam(teamA); em.persist(member2); Member member3 = new Member(); member3.setUsername("member3"); member3.setTeam(teamB); em.persist(member3); Member member4 = new Member(); member4.setUsername("member4"); member4.setTeam(null); em.persist(member4); em.flush(); em.clear(); String query ="select t From Team t join fetch t.members"; List<Team> result = em.createQuery(query, Team.class).getResultList(); for (Team team : result) { System.out.println("team= " + team.getName() + "|members=" + team.getMembers().size()); } tx.commit(); } catch (Exception e){ tx.rollback(); e.printStackTrace(); }finally { em.close(); } emf.close(); }이 코드를 실행시켰더니 14분 50초에 나오는 3줄이 나오는 것이 아닌team= teamA|members=2 team= teamB|members=1이렇게 나오는데 혹시 어떤 이유에서 그런것인지 궁금합니다.
-
미해결
수강기한:무제한? 유료 수강기간 1개월?
안녕하세요.강의 하나를 결제했는데수강기한:무제한이라고 나왔는데, 마우스에 손을 올려보면유료수강기간1개월, 이후 복습 및 질문답변 무제한 가능이라고 써있더라구요. 이거는 결제후 한달동안만 무제한으로 강의를 들을수잇단건지?아니면 평생 무제한으로 학습이 가능하다는건가요?
-
미해결파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI, async, await)
proxy 사용 질문
안녕하세요.사내에서 강의를 듣다보니 proxy를 타도록 되어 있습니다.basic-fetcher에서는 아래 두가지 방식이 모두 동작하는데요.os.environ["HTTP_PROXY"] = "http://xxx..." os.environ["HTTPS_PROXY"] = "http://xxx..." os.environ["PYTHONHTTPSVERIFY"] = "0"def fetcher(session, url): with session.get(url, proxies=proxies, verify=False) as respose: return respose.textcoroutine-fetcher 에서는 ClientSession()에서 두가지 모두 오류가 납니다.1번async def fetcher(session, url): async with session.get(url, proxies=proxies, verify=False) as respose: return await respose.text() async def main(): urls = ["https://naver.com", "https://google.com", "https://instagram.com"] async with aiohttp.ClientSession() as session: result = await fetcher(session, urls[0]) print(result)2번async def fetcher(session, url): async with session.get(url, verify=False) as respose: return await respose.text() async def main(): urls = ["https://naver.com", "https://google.com", "https://instagram.com"] async with aiohttp.ClientSession() as session: result = await fetcher(session, urls[0]) print(result) 해결방법과 함께 proxy 환경에서는 프록시 정보를 어떤 구조로 가지고 있어야 효율적일지 문의드립니다.
-
해결됨AWS(Amazon Web Service) 입문자를 위한 강의
S3 버킷 버전 관리
수업을 듣다가 궁금한게 있어서 질문 남깁니다. 버킷 버전 관리시 활성화를 누르면 같은 버켓에서 똑같은 파일을 업로드하더라도 파일이 덮어씌워지는 것이 아니라 다른 버전으로 관리된다고 하셨는데, 같은 파일인지는 어떤 기준으로 판단하는 건가요? 앞부분에서 s3에 대해 배울때 Object가 (key, value, versionId, Metadata, CORS)로 구성되어 있다고 하는데 각 요소가 다 일치하면 같은 파일로 보는 건가요? 만약에 단순히 파일명을 가지고 판단한다고 하면, 예를 들어 두 가지 이미지가 있다고 할 때같은 이미지, 다른 파일명 -> 다른 파일 다른 이미지, 같은 파일명 -> 같은 파일로 인식되는 건가요?
-
미해결김영한의 실전 자바 - 기본편
스택 영역과 힙 영역
스택 영역과 힙 영역에서 궁금한게 생겨 질문 남깁니다! 지금 Main 클래스에서 17번째줄에 있는 Data data2 를Data data2 = new Data(); 이렇게 작성하면 안되는건가요?
-
해결됨스프링 DB 1편 - 데이터 접근 핵심 원리
커넥션 생성
초기에 트랜잭션이 시작되면 커넥션은 누가 얻어오는건가요?Repository에서DataSourceUtils.getConnection(dataSource); 실행되고 doGetConnection 메서드에서ConnectionHolder conHolder = (ConnectionHolder) TransactionSynchronizationManager.getResource(dataSource); Connection con = fetchConnection(dataSource);이렇게 얻어오는거같은데 트랜잭션 동기화매니저가 커넥션을 얻어오고 이 커넥션을 트랜잭션 매니저가 사용하는건가요??
-
미해결김영한의 실전 자바 - 기본편
메서드 생성시 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]메서드 생성시 형(반환) 부분에 클래스(인스턴스) 이름을 바로 넣어 쓰는 것 과 참조값(변수 )쪽에 클래스(인스턴스 참조값) 넣는 차이가 뭔가요? class A {}-=---===========생성후======메서드(** <-객체이름)예1) void *** (A **,int* * ,etc) {} //인스턴스에 클래스 넣어 사용예2) A **(int * *, etc){} //메서드명에 클래스 직접넣어 사용 ===========================
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
useCallBack 강의 질문
이전 강의인 Reacr.memo 에서 리액트가 기존 prop 과 신규 prop 을 얕은비교(주소값 비교)로 진행하기 때문에, 새로운 객체로 업데이트(생성, 수정, 삭제)로 인해서 수정된 객체 값((새로운 주소값))이 state() 값으로 할당되어 다르게 인식하기 때문에 react.memo 에서 직접 사용자가 비교할 수 있게 따로 로직을 만들었습니다.그런데 이번 강의에서는 단순히 생성, 수정, 제거 함수를 useCallback 으로 제어했을때,react.memo에 직접 prop 값을 비교한 로직은 왜 지우는건가요?state 데이터를 핸들링하는 함수들은 변하지 않음으로 mount 할때만 useCallback을 쓰는건 알겠는데, 이게 왜 state 객체 주소값이랑 연관이 있는지 모르겠어요 ㅜㅜ
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
JPA와 DB설정, 동작확인 강의에서 오류메세지 발
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]제가 오류를 못찾는건지 자료랑 비교했을 때 별 특이사항은 없는 것 같은데 자꾸 오류가 발생합니다.MEMBER_SEQ이 대체 뭔지 모르겠네요 ㅠㅠ 젤 하단 사진 테스트코드 실행 시 오류가 발생합니다. application.yml server: port: 8081 #MVCC=TRUE를 넣어주면 여러개를 한번에 접근했을 때 좀 더 빨리 처리가 된다. spring: datasource: url: jdbc:h2:tcp://localhost/~/jpashop username: sa password: driver-class-name: org.h2.Driver #ddl-auto: create -> 자동으로 테이블을 만들어주는 모드 jpa: hibernate: ddl-auto: create properties: hibernate: # show_sql: true System.out.~을 통해서 출력 format_sql: true #logger를 통해 출력 #로그 레벨 #hibernate SQL로그를 디버그 모드로 쓴다는 것 #-> Hibernate가 남기는 모든 로그가 다 디버그 모드로 해서 JPA나 Hibernate가 생성하는 SQL이 다 보인다. logging: level: org.hibernate.SQL: debug Memberpackage jpabook.jpashop; import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.Id; import lombok.Getter; import lombok.Setter; @Entity @Getter @Setter public class Member { @Id @GeneratedValue private long id; private String username; }MemberRepositorypackage jpabook.jpashop; import jakarta.persistence.EntityManager; import jakarta.persistence.PersistenceContext; import org.springframework.stereotype.Repository; @Repository public class MemberRepository { @PersistenceContext private EntityManager em; public Long save(Member member){ em.persist(member); return member.getId(); } public Member find(Long id){ return em.find(Member.class,id); } }MemberRepositoryTestpackage jpabook.jpashop; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.transaction.annotation.Transactional; import static org.assertj.core.api.Assertions.*; import static org.junit.Assert.*; @RunWith(SpringRunner.class) //junit한테 SpringBoot로 테스트 한다고 알려주는 것 @SpringBootTest public class MemberRepositoryTest { @Autowired MemberRepository memberRepository; @Test @Transactional public void testMember(){ //given Member member=new Member(); member.setUsername("memberA"); //when Long saveID= memberRepository.save(member); Member findMember=memberRepository.find(saveID); //then assertThat(findMember.getId()).isEqualTo(member.getId()); assertThat(findMember.getUsername()).isEqualTo(member.getUsername()); } }
-
미해결홍정모의 게임 만들기 연습 문제 패키지
마우스 좌우 버튼을 동시에 눌렀을 때의 원의 위치
위 사진은 마우스 양쪽 버튼을 동시에 눌렀을 때 원의 위치입니다. 버튼을 하나씩 눌렀을 때는 커서 위치에 원이 잘 그려지는데, 동시에 누르는 순서와는 상관 없이 누르기만 하면 원이 위와 같이 그려집니다. 캡쳐되지 않았으나 커서는 노란 원 위에 있는 상태이고, mouse_pos 역시 커서 위치대로 출력됩니다. 그런데 빨간 원의 위치가 조금 이상해서 질문 드립니다. 제가 보기에는 빨간 원이(마우스 커서~원점)의 거리의 두 배만큼 원점으로부터 떨어져 있는 것으로 보이는데요, if문의 분기 조건은 다르지만 안의 코드가 translate(mouse_pos)로 동일한데도 이런 차이가 나는 이유가 뭔가요?
-
미해결스프링 핵심 원리 - 기본편
런 실행 sysout이 안돼요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기서 java나 스프링 부트가 떠야하는데 안떠요ㅜ 프로젝트를 잘못 만든건가요? 전체파일 스프링부트 실행했을때 스프링 실행은 되는데,process finished with exit code 0 은 안뜹니다.뭐가 문제죠?