묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
Hibernate5JakartaModule 오류
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]build.gradle에 Hibernate5JakartaModule을 잘 등록하여 라이브러리 목록도 확인했습니다. 그런데 이렇게 오류가 뜹니다ㅠㅠ빨간 줄에는 "Cannot return a value from a method with void result type" 라고 뜨는데 이유가 뭘까요..ㅠㅠ
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
Editor 컴포넌트 리렌더링
아래 질문들을 보던 중 Editor 부분이 리렌더링 된다는 글을 보고 제 화면도 확인한 결과 리렌더링 된 걸 확인해서 Editor.jsx 또한 아래와 같이 memo메서드를 감싸줬더니 리렌더링 되지 않는 것을 확인했습니다.import "./Editor.css"; import { useState, useRef, memo } from "react"; const Editor = ({ onCreate }) => { const [content, setContent] = useState(""); const contentRef = useRef(); const onChangeContent = (e) => { setContent(e.target.value); }; const onKeyDown = (e) => { if (e.keyCode === 13) { onSubmit(); } }; const onSubmit = () => { if (content.trim() === "") { contentRef.current.focus(); return; } onCreate(content.trim()); setContent(""); }; return ( <div className="Editor"> <input ref={contentRef} value={content} onKeyDown={onKeyDown} onChange={onChangeContent} placeholder="새로운 Todo..." /> <button onClick={onSubmit}>추가</button> </div> ); }; export default memo(Editor); Editor.jsx의 props가 onCreate 메서드인데 이를 App.jsx에서 useCallback 처리를 해줘서 그냥 export default memo(Editor); 을 해줘도 리렌더링 방지가 가능했던 것인지 궁금해서 질문 남깁니다! App.jsx 코드입니다!import "./App.css"; import { useState, useRef, useReducer, useCallback } from "react"; import Header from "./components/Header"; import Editor from "./components/Editor"; import List from "./components/List"; const mockData = [ { id: 0, isDone: false, content: "운동하기", date: new Date().getTime(), }, { id: 1, isDone: false, content: "풋살하기", date: new Date().getTime(), }, { id: 2, isDone: false, content: "게임하기", date: new Date().getTime(), }, ]; function reducer(state, action) { switch (action.type) { case "CREATE": return [action.data, ...state]; case "UPDATE": return state.map((item) => item.id === action.targetId ? { ...item, isDone: !item.isDone } : item ); case "DELETE": return state.filter((item) => item.id !== action.targetId); default: return state; } } function App() { const [todos, dispatch] = useReducer(reducer, mockData); const idRef = useRef(3); const onCreate = useCallback((content) => { dispatch({ type: "CREATE", data: { id: idRef.current++, isDone: false, content: content, date: new Date().getTime(), }, }); }, []); const onUpdate = useCallback((targetId) => { dispatch({ type: "UPDATE", targetId: targetId, }); }, []); const onDelete = useCallback((targetId) => { dispatch({ type: "DELETE", targetId: targetId, }); }, []); return ( <div className="App"> <Header /> <Editor onCreate={onCreate} /> <List todos={todos} onUpdate={onUpdate} onDelete={onDelete} /> </div> ); } export default App;
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
vid_player Project의 ImageSource.gallary 실행 오류
Lost connection to device. the Dart Compiler exited unexpectedly. 문제로 simulator가 종료됐습니다. 해당 문제건에 대해 질문&답변 코너를 찾아봤지만, 같은 이슈로 올라온 글이 없어 정보 공유 드립니다. 😊😊이 문제는 ios 권한으로 인해 발생하는 오류 입니다. [vid_player > ios > Runner > Info.plist] 파일 실행. 맨 밑에 </dick> 위에 아래의 문구 작성______________________________________________________<key>NSPhotoLibraryUsageDescription</key><string>사진을 선택하기 위해 라이브러리에 접근합니다.</string>______________________________________________________ 행복 코딩하세요.🙆🙆
-
미해결스프링 핵심 원리 - 기본편
테스트 두개를 동시에 돌렸을 경우 왜 밸류값이 달라지는 건가요??
public class ApplicationContextInfoTest { AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class); @Test @DisplayName("모든 빈 출력하기") void findAllBean() { String[] beanDefinitionNames = ac.getBeanDefinitionNames(); for (String beanDefinitionName : beanDefinitionNames) { Object bean = ac.getBean(beanDefinitionName); System.out.println("name = " + beanDefinitionName + " Object = " + bean); } } @Test @DisplayName("모든 빈 출력하기") void findApplicationAllBean() { String[] beanDefinitionNames = ac.getBeanDefinitionNames(); for (String beanDefinitionName : beanDefinitionNames) { BeanDefinition beanDefinition = ac.getBeanDefinition(beanDefinitionName); if (beanDefinition.getRole() == BeanDefinition.ROLE_APPLICATION) { Object bean = ac.getBean(beanDefinitionName); System.out.println("name = " + beanDefinitionName + " Object = " + bean); } } } }테스트 코드를 이렇게 짠 후 같이 돌리면 오브젝트로 나오는 애들 코드가 각각 다르게 나옵니다.스프링 컨테이너는 초기에 한 번만 생성/등록되고 각각의 테스트에서 같은 것을 가져오는 건줄 알았는데 아닌가요..??
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
양방향 연관관계와 기본키 전략
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요. 연관관계 양방향에 값을 입력해주는 부분에 대해서 이해한 것 같습니다. 아직 1차 캐시에만 존재하고 영속성 엔티티에 반영이 되지 않았기 때문에 객체로는 조회가 되지 않는 것으로 이해했습니다. 다만 궁금한 점이 기본키 전략을 auto_increment 같은 방식으로 한 경우에는 미리 한번 쿼리가 나간다고 이전 강의에서 배운 것이 생각났습니다. 강의에서도 기본키 전략은 동일한 것 같습니다. 기본키 전략 때문에 나간 쿼리가 반영이 안되는 이유가 따로 있을가요?
-
미해결
채팅에 대해서 질문이 있습니다. ㅠㅠ
... // WebSocket 연결 및 STOMP 클라이언트 설정 useEffect(() => { const token = sessionStorage.getItem("accessToken"); // 세션에서 액세스 토큰을 가져옴 const socket = new SockJS(`http://localhost:8080/ws/chat`); // WebSocket 연결 const client = Stomp.over(socket); stompClientRef.current = client; // STOMP 연결 client.connect( { Authorization: `Bearer ${token}` }, (frame) => { setConnected(true); console.log("STOMP 연결 성공", frame); // 해당 채팅방에 대한 메시지 구독 client.subscribe(`/exchange/chat.exchange/room.${roomId}`, (msg) => { const receivedMessage = JSON.parse(msg.body); if (receivedMessage.type === "PLACE") { const place = JSON.parse(receivedMessage.message); setMessages((prev) => [...prev, { type: "PLACE", place }]); } else { setMessages((prev) => [...prev, receivedMessage]); } }); }, (error) => { console.error("STOMP 연결 실패:", error); alert("STOMP 연결 실패! 서버가 실행 중인지 확인하세요."); } ); // 채팅방 목록 가져오기 fetch(`${BASE_URL}/chat/rooms`, { headers: { Authorization: `Bearer ${token}`, }, }) .then((res) => res.json()) .then((data) => setChatRooms(data)) .catch((error) => console.error("채팅방 목록 가져오기 실패:", error)); return () => { if (client.connected) client.disconnect(); }; }, [roomId]); // 메시지 보내는 기능 const sendMessage = (message, type = "TALK") => { const token = localStorage.getItem("accessToken"); stompClientRef.current?.send( `/pub/chat.message.${roomId}`, { Authorization: `Bearer ${token}` }, JSON.stringify({ sender: currentUser, message, roomId, type, timestamp: new Date().toISOString(), }) ); if (type === "TALK") setNewMessage(""); }; ...리액트는 다음과 같이 구성하고 @Controller @RequiredArgsConstructor @Log4j2 public class ChatController implements ChatControllerDocs { private static final String CHAT_EXCHANGE_NAME = "chat.exchange"; private final static String CHAT_QUEUE_NAME = "chat.queue"; private final ChatService chatService; private final RabbitTemplate rabbitTemplate; @Override // 클라이언트에서 서버로 보낸 메시지를 메시지를 라우팅 // @MessageMapping("chat.message")로 설정하여 클라이언트로부터 /pub/chat.message 목적지로 전송된 STOMP 메시지를 처리한다. /*RabbitMQ*/ @MessageMapping("chat.message.{roomId}") /*STOMP*/ // @MessageMapping("/{roomId}") // 구독한 클라이언트에게 response를 제공할 url 정의 // @SendTo("/topic/{roomId}") public ResponseEntity<?> sendMessage( // @Payload: 메시지의 body를 정의한 객체에 매핑합니다. @Payload ChatMessageDTO message, // @DestinationVariable: 구독 및 메시징의 동적 url 변수를 설정. RestAPI의 @PathValue와 같다. @DestinationVariable int roomId) { try { ChatMessageDTO msg = chatService.sendMessage(message); log.info("Sent message: {}", msg); if (msg != null) { // RabbitMQ으로 메시지 전송 // template.convertAndSend() 메소드를 사용하여 메시지를 RabbitMQ로 전송한다. // 메시지는 chat.exchange로 전송되며, 라우팅 키는 room. + 메시지의 방 ID로 구성된다. rabbitTemplate.convertAndSend(CHAT_EXCHANGE_NAME, "room." + roomId, message); } else { log.error("Failed to create chat message. User might not be in the chat room. User: {}, Room: {}", message.getSender(), message.getRoomId()); } return ResponseEntity.ok().body(msg); } catch (Exception e) { log.error("Error processing message: ", e); throw new ChatException(e.getMessage()); } } @Configuration @EnableRabbit @RequiredArgsConstructor public class RabbitConfig { // Queue (큐): RabbitMQ에서 메시지를 저장하는 장소 private static final String CHAT_QUEUE_NAME = "chat.queue"; // Exchange (교환기): 메시지를 Queue로 라우팅(보내는) 역할 private static final String CHAT_EXCHANGE_NAME = "chat.exchange"; // Routing Key (라우팅 키): Exchange가 메시지를 어떤 Queue로 보낼지를 결정하는 데 사용 private static final String ROUTING_KEY = "room.*"; @Value("${spring.rabbitmq.host}") private String host; @Value("${spring.rabbitmq.port}") private int port; @Value("${spring.rabbitmq.username}") private String userName; @Value("${spring.rabbitmq.password}") private String password; // Queue 등록 @Bean public Queue queue() { return new Queue(CHAT_QUEUE_NAME, true); } // Exchange 등록 @Bean public TopicExchange exchange() { return new TopicExchange(CHAT_EXCHANGE_NAME); } // Exchange와 Queue바인딩 @Bean public Binding binding(Queue queue, TopicExchange exchange) { return BindingBuilder .bind(queue) .to(exchange) .with(ROUTING_KEY); } // RabbitMQ와의 메시지 통신을 담당하는 클래스 @Bean public RabbitTemplate rabbitTemplate() { RabbitTemplate rabbitTemplate = new RabbitTemplate(connectionFactory()); rabbitTemplate.setMessageConverter(jsonMessageConverter()); rabbitTemplate.setRoutingKey(ROUTING_KEY); return rabbitTemplate; } // RabbitMQ와의 연결을 관리하는 클래스 @Bean public ConnectionFactory connectionFactory() { CachingConnectionFactory factory = new CachingConnectionFactory(); factory.setHost(host); factory.setPort(port); factory.setVirtualHost("/"); factory.setUsername(userName); factory.setPassword(password); return factory; } // Queue를 구독(Subscribe)하는 걸 어떻게 처리하느냐에 따라 필요함. 당장은 없어도 됨. @Bean public SimpleRabbitListenerContainerFactory simpleRabbitListenerContainerFactory(ConnectionFactory connectionFactory, MessageConverter messageConverter) { SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory(); factory.setConnectionFactory(connectionFactory); factory.setMessageConverter(messageConverter); return factory; } @Bean public RabbitMessagingTemplate rabbitMessagingTemplate(RabbitTemplate rabbitTemplate) { return new RabbitMessagingTemplate(rabbitTemplate); } // 메시지를 JSON형식으로 직렬화하고 역직렬화하는데 사용되는 변환기 // RabbitMQ 메시지를 JSON형식으로 보내고 받을 수 있음 @Bean public Jackson2JsonMessageConverter jsonMessageConverter() { //LocalDateTime serializable을 위해 ObjectMapper objectMapper = new ObjectMapper(); objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, true); objectMapper.registerModule(dateTimeModule()); Jackson2JsonMessageConverter converter = new Jackson2JsonMessageConverter(objectMapper); return converter; } @Bean public Module dateTimeModule() { return new JavaTimeModule(); } }... @Override public void registerStompEndpoints(StompEndpointRegistry registry) { registry .setErrorHandler(stompExceptionHandler) // 소켓 연결 URI다. 소켓을 연결할 때 다음과 같은 통신이 이루어짐 .addEndpoint("/ws/chat") .setAllowedOriginPatterns("http://localhost:5173") // SocketJS를 통해 연결 지원 .withSockJS(); } @Override public void configureClientInboundChannel(ChannelRegistration registration) { log.info("--------------"); log.info("동작함"); registration.interceptors(stompHandler); } @Override public void configureMessageBroker(MessageBrokerRegistry registry) { // url을 chat/room/3 -> chat.room.3으로 참조하기 위한 설정 registry.setPathMatcher(new AntPathMatcher(".")); registry.setUserDestinationPrefix("/sub"); // 클라이언트 구독 경로 // RabbitMQ 브로커 리레이 설정 registry.enableStompBrokerRelay("/exchange", "/queue", "/topic") .setRelayHost(host) .setRelayPort(61613) .setClientLogin(userName) .setSystemPasscode(password) .setSystemLogin(userName) .setSystemPasscode(password); } ... }이렇게 구성했는데 rabbitMQ는 도커 컴포즈로 구성했습니다.근데 다음과 같은 문제가 발생했는데Chat.jsx:31 GET http://localhost:8080/ws/chat/285/4mxcvol4/jsonp?c=_jp.apvvzrr net::ERR_ABORTED 404 (Not Found)chat:1 Refused to execute script from 'http://localhost:8080/ws/chat/285/4mxcvol4/jsonp?c=_jp.apvvzrr' because its MIME type ('') is not executable, and strict MIME type checking is enabled.이렇게 계속해서 연결이 끊깁니다 어떻게 해야하나요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
왜 당연히 n=8일때 아래 가지가 2개씩 늘어나나요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 강의 1주차 개념 #5-2의 1분 59초 안녕하세요 큰돌님 n=4일때는 그냥 2n-1으로 7번 반복됨을 아는데 왜 당연하게 n=8일때는 아래 8개가 늘어나는지가 궁금합니다. 물론 직접 해보면 저렇게 되는것을 알고 있긴한데 어떤 이유에서 저렇게 당연하게 말씀하신게 궁금합니다.
-
미해결
할인이벤트 관련 질문
친절한 블렌더 시리즈를 구매하려고 했는데오전까지 할인 프로모션을 했던가 같은데 경제 하려고 보니 지금은 할인 적용이 안되네요. 어제까지였는데 제가 착각한건가요?막상 하려고 마음먹었는데 갑자기 금약이 올라있으니 쉽사리 결제가 안되네요ㅠ혹시 다음 프로모션 계획이나 할인 쿠폰을 구할 수 있는 방법등이 없을까요?답변 부탁드립니다ㅡ
-
해결됨[UI3 업데이트] 피그마 배리어블을 활용한 디자인 시스템 구축하기
NavBar 인스턴스 컴포넌트 셀렉티드 불린 프로퍼티 ON/OFF 시 아이콘 컬러 변경
강의처럼 NavBar 인스턴스 컴포넌트에서 Selected 불린 프로퍼티를 끄고 켬에 따라 컬러의 변경을 주고싶은데 아이콘 인스턴스 스왑한 아이콘들은 컬러가 안바뀝니다ㅠ디자인 패널에서 NavBarItems-1은 셀렉트에 따라 바뀌는데 2번같이 아이콘을 Person 아이콘으로 스왑한 아이콘에 대해선 셀렉트 상태에도 컬러가 변하지 않는데요, 원래 이런건가요?
-
미해결워드프레스(WordPress) 완전정복
블로그 페이지 게시물 페이지 오류
선생님 강의 잘 듣고 있습니다. 수업 중 난관에 부딪혀서 질문 남깁니다.문제 1현재 content.php 에서 커스텀 쿼리를 생성 후 posts_per_page => 6 의 값을 넣고 난 후/blog/page/6/ 에서부터 404 오류 페이지로 이동 됩니다.(1, 2, 3, 4, 5 페이지까지는 페이지가 나오는데 6, 7 을 404 페이지를 보여줍니다.)구글링 해본 결과 : 1. 워드프레스 탭에서 설정 고유주소 변경 : 실패2. 설정 -> 읽기 페이지당 보여줄 글의 수 를 posts_per_page과 동일하게 6으로 맞춤 -> 모든 페이지(blog/page) 완벽하게 작동됨, 하지만 프론트 페이지에 front-latest posts도 6으로 나옴: 실패 <?php // $paged = get_query_var('paged') ? get_query_var('paged') : 1; $commonQuery = new WP_Query(array( 'post_type' => 'post', 'posts_per_page' => 3, 'category__not_in' => array(32), 'paged' => get_query_var('paged', 1) )); 문제 2 : 블로그 페이지 topBanner는 타이틀 및 서브 타이틀이 text-align이 수정되지 않음(다른 페이지는 작동)그리고 블로그 페이지의 title이 블로그 게시물의 text-align에 따라 같이 움직임 (최근 블로그 게시물의 텍스트 얼라인을 왼쪽으로 작성하면 블로그 페이지의 타이틀도 왼쪽으로 이동됨)
-
해결됨[UI3 업데이트] 피그마 배리어블을 활용한 디자인 시스템 구축하기
navbar 인스턴스 selected on/off
강의처럼 NavBar 인스턴스 컴포넌트에서 Selected 불린 프로퍼티를 끄고 켬에 따라 컬러의 변경을 주고싶은데 아이콘 인스턴스 스왑한 아이콘들은 컬러가 안바뀝니다ㅠ디자인 패널에서 NavBarItems-1은 셀렉트에 따라 바뀌는데 2번같이 아이콘을 Person 아이콘으로 스왑한 아이콘에 대해선 셀렉트 상태에도 컬러가 변하지 않는데요, 원래 이런건가요?
-
해결됨스프링 DB 2편 - 데이터 접근 활용 기술
물리 트랜잭션과 논리 트랙잭션
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]물리 트랜잭션과 논리 트랜잭션 중 물리 트랜잭션 만이 데이터베이스에 직접 커밋과 롤백 같은 영향력을 행사할 수 있음을 이해했습니다.그렇다면 만약 아래와 같은 코드가 존재할 때, 트랜잭션 동작 방식에 대해서 제가 이해한 것이 맞는 지 질문 드리고 싶습니다.// AuthPacade 클래스의 메서드 public void withdraw(final long userId, final String code) { User user = userFinder.getUser(userId); externalService.revoke(user.getPlatform(), code, user.getSerialId()); authService.deleteUser(user); }위의 코드는 userFinder.getUser() 메서드에서 @Transactional 이 걸려있고 authService.deleteUser() 메서드에서 @Transactional 이 걸려있는 상태입니다. 두 함수 모두 외부 호출이며 externalService.revoke 역시 외부 호출이지만 @Transactional이 적용되지 않는 상태입니다.그렇다면 이 경우에는 userFinder.getUser() 을 실행할 때, 하나의 물리 트랜잭션이 실행되어 종료(커밋)된 후 revoke()를 수행한 후에 다시 authService.deleteUser() 를 실행하면서 또 다른 물리 트랜잭션이 실행되는 것으로 저는 이해했습니다.즉, externalService.revoke() 메서드를 호출할 때는 트랜잭션이 적용되지 않고 그 외의 다른 2개의 메서드에는 서로 다른 물리 트랜잭션이 적용되는게 맞는지 궁금합니다!!공부를 해보니 외부 네트워크와 통신하는 것은 트랜잭션 범위에서 제거하는 것이 좋다는 것을 깨달아서 배운 바를 토대로 개인 프로젝트에 적용해보는 중인데, 맞는 지 궁금합니다.. 특히, 실무에서는 어떤 방식으로 처리하는 지도 함께 궁금합니다!감사합니다:)
-
해결됨독하게 C를 배운 사람을 위한 선형 자료구조
예제는 어디서 다운로드 받을 수 있나요?
안녕하세요 강사님, 현제 자료구조 강의를 수강하고 있습니다. 동영상에서 예제에 대해서 설명하시는데, 혹시 예제 코드는 어디서 다운받을 수 있을까요?
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
H2 콘솔에 접속했을 때 테이블
강의따라서 H2접속하면 자동으로 BOOK, FRUIT, PERSON, USER, USER_LOAN_HISTORY 테이블이 있는데 어떻게 자동으로 만들어져 있는 건가요.?? mysql에서 테이블 만들었는데 h2는 mysql과 다른거 아닌가요..? 기존의 자바 entity 코드를 다 읽어서 얘네가 알고있는건가요???ps. 강의 너무 잘듣고 있습니다! 이때까지 완강해본 강의가 손에꼽는데 완강을 앞두고 있어서 너무 설레는 맘입니다..! 좋은 강의 만들어주셔서 감사합니다.
-
미해결Java/Spring 테스트를 추가하고 싶은 개발자들의 오답노트
JPA가 아닌 Mapper 아키텍처 기반 테스트 코드 작성
안녕하세요, 수업 강의는 JPA 기반으로 설명해 주고 계신데 만약 Mapper 아키텍처 기반도 해당 강의 repository 테스트 코드 작성한 것 기반으로 적용하면 되나요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
save-result.jsp import
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요 이 부분에서 제가 오류가 나서 1회독을 할 때 그냥 진행하기도 했었는데 다시 복습하면서 해결했습니다선생님께서는 이대로 하셨는데도 페이지가 그대로 뜨셨거든요저는 항상 전혀 뜨지,않아서 너무 답답했었습니다뭐가 오류일까 똑같이 했는데 뭐가 문제일까....그런데 어쩌다 gpt와 검색을 해보다가 이렇게 2번째 줄에 import 경로를 넣어줬더니 드디어 되네요 그래도 저도 조금씩은 나아지나봅니다너무 감사드립니다
-
해결됨넓고 얕게 외워서 컴공 전공자 되기
정규표현식 학습에 대한 조언 부탁드립니다.
안녕하세요.첫 슬라이드 4번째 항목의 "정규표현식을 배워라"에 대해 학습영상에서 설명이 없으시기에 궁금하여 문의드립니다. ^^1. 정규표현식이 무엇인지 궁금합니다. (구글링 하여 어떤 개념인지 대강 확인했습니다만, 모든 학습영상마다 CS 초보학습자 수준에서 강약 조절하여 조언을 잘 해주시기에... 또한 제가 마침 개념이 생소하여 더 잘 이해하고자 문의 올립니다.)2. 그리고 정규표현식을 초보학습자 수준에서 어떤 방향으로 학습하면 프로그래밍 작성을 잘 할 수 있을지 조언 부탁드립니다.새해복많이받으세요. 미리 감사말씀 올립니다. ^^
-
해결됨대용랑 채팅 TPS에 대한 stateful 서비스 구축하기
Kafka 구동관련
Kafka를 통한 Subscribe 마무리하고, API를 통해 확인해 볼게요.-> 이 강의에서 카프카 구동시키는 명령어 알려주실수있나요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-H 4659 비밀번호 발음하기 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. http://boj.kr/4ee8d966049241338c5a85f9b7c8568b강의 없이 혼자 풀어보고 제출했는데, 테스트케이스는 다 맞는다고 나오는데, 왜 틀렸는지 모르겠어서 질문드립니다!
-
미해결실무 중심! FE 입문자를 위한 React
5-1 학습링크
pdf에서 5-1링크 클릭햇는데 codeSandBox 페이지가 없다고 뜹니다. 새로운 링크 없나요??ㅠㅠ