inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

172만명의 커뮤니티!! 함께 토론해봐요.

Colab에서 변수명을 그냥 입력하는 것과 print를 통해 보는 것의 차이

미해결

파이썬 프로그래밍

안녕하세요, 비전공자며 부산대학교 소프트웨어융합교육원 - 파이썬 프로그래밍 무료강의를 통해 처음으로 프로그래밍에 대해 공부를 시도해보는 학생입니다. 다름아니라 본 강의 2-1에서 실습하는 내용 도중 궁금한 점이 생겼으나 해당 부분에 대해 스스로 답을 찾지 못하여 잘 아시는 분들께 여쭤보고 싶어 질문 남깁니다. 자료형-문자열 출력과 관련해서, colab 및 일부 개발환경에서는 문자열 변수명을 코드셀 마지막에 그냥 입력하면 출력된다고 하여 어퍼스트로피와 인용구가 혼용된 문자열을 출력하고자 시도하였습니다. 다만 그냥 출력하면 어퍼스토로피 앞에 저 원화기호(W) 닮은 기호... 가 나오고 print를 통해서 실행하면 안뜨더라구요. 이 차이가 궁금한데 아직 별도의 파이썬 교재를 구입하여 공부중이지도 않고 용어를 뭐라고 검색해야할지 조차 감이 안잡혀 사소한 내용이지만 질문 남깁니다.

  • python
genovese1206 댓글 1 좋아요 0 조회수 149

클라이언트 , 서버 컴포넌트의 사용 범위

해결됨

한 입 크기로 잘라먹는 Next.js

안녕하세요 정환님. 완강하고 혼자 google oAuth 와 jwt를 이용해서 로그인을 구현하는 와중에 아무리 찾아봐도 도저히 개념이 잡히지 않는 부분이 있어서 질문 드립니다. nextjs에서는 대부분의 컴포넌트들을 서버컴포넌트로 쓰는것을 권장하고, 상호작용을 위해 hydration이 필요한 컴포넌트들을 클라이언트 컴포넌트로 사용하라고 강의에서 배웠고 그렇게 구현을 하고 있습니다. nextjs의 로그인을 찾아보면 jwt로 access토큰과 refresh 토큰을 이용해서 구현을 하는 글들이 많이 있는데, access토큰은 로컬 스토리지나 state에 담고, refresh 토큰은 httpOnly 쿠키에 담으라고 합니다. 구현을 하다보니 컴포넌트에서 데이터를 페칭을 할때 서버에 access 토큰을 헤더에 담아 보내기 위해서는 로컬 스토리지나 state를 사용하기위해 무조건 클라이언트 컴포넌트를 사용해야 하는데 , 원래 이래야 하는 건가요? 이렇게 되면 데이터 페칭이 필요한 컴포넌트들을 무조건 클라이언트 컴포넌트가 되어버립니다. 아니면 서버 컴포넌트를 사용하고 페칭이 필요할때는 쿠키에 있는 refresh 토큰으로 매번 검증을 해야하는것인지.. 강의에 많이 벗어난 내용 같긴 한데 이렇게 사용하는게 맞는건인지 .. 개념이 잘 잡히지 않아 질문드립니다. 강의는 정말 잘 들었습니다. 새해 복 많이 받으세요.

  • react
  • typescript
  • next.js
JunWoo Kim 댓글 1 좋아요 0 조회수 155

Consumer Instances 관련 질문 있습니다.

미해결

파이썬/장고로 웹채팅 서비스 만들기 (Feat. Channels) - 기본편

Consumer Instances를 어떻게 생각해야될지 이해가 잘 안되어 질문드립니다. 강의에 채널스 외부 그룹 채널 레이어 등을 그림으로 친절하게 표현해주셨는데 제가 정확하게 이해가 안되고 있습니다. 설명 부탁드려도 될까요? 감사합니다.

  • python
  • django
  • django-channels
sunnnwo 댓글 2 좋아요 0 조회수 106

회사 사이트 설명(노션) 사이트 접속 문의

해결됨

React, Node.js, MongoDB로 만드는 나만의 회사 웹사이트: 완벽 가이드

강의중 설명에서 알려주시는 노션 사이트는 어떻게 접속해야 하나요?

  • HTML/CSS
  • javascript
  • react
  • node.js
  • mongodb
Lee youngchae 댓글 1 좋아요 0 조회수 190

새 강의 쿠폰 관련 문의

해결됨

[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스

안녕하세요!! 강의 너무 잘 듣고 있습니다! 다름이 아니라 css 거의 마지막까지 왔는데 새 강의가 나왔다는 사실을 알게 되어서 저도 새로운 버전으로 강의를 수강하고 싶은데요! ㅠㅠ 실제로 82강에 나오는 my-shop 깃헙 페이지가 다운되기도 했고 해서 새로운 버전으로 꼭 수강하고 싶습니다!! 저도 쿠폰을 받을 수 있을까요? 좋은 강의 제공해 주셔서 정말 감사합니다!

  • react
  • node.js
  • seo
  • graphql
  • next.js
이세은 댓글 2 좋아요 0 조회수 125

LiveDemo 페이지 정상작동하나요?

미해결

Supabase, Next 풀 스택 시작하기 (feat. 슈파베이스 OAuth, nextjs 14)

강의를 본격적으로 듣기에 앞서 Live Demo를 살펴보려했는데, 링크 접속 자체에는 문제가 없으나, 로그인 클릭시 리다이렉트 url이 잘못되었는지 정확한 이유는 모르곘으나 "This site can't be reached" 에러가 뜨네요?! 확인 좀 해주실 수 있을까요?!

  • react
  • 클론코딩
  • next.js
  • supabase
치현 댓글 2 좋아요 2 조회수 158

context 강의를 들으면서 이해가 안가는 부분이 있습니다.

해결됨

한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지

안녕하세요 이전 memo 강의에서 useCallback를 들고 context 듣다 보니 궁금한 사항이 있습니다. 리로딩 방지를 위한 onCreate, onUpdate, onDelete에 이전 강의에 useCallback이 되어있는 상태에서 TodoDispatchContext하는 과정에서 useMemo로 리턴해서 전달하는데 context를 사용시 한번만 리로딩 방지를 위해서는 useMemo와 useCallback를 중복으로 사용 되어야하는걸까요?? 아님 useMemo를 사용하여 useCallback는 사용해도 안해도 무방한지 영상을 보다가 궁금합니다...! 추가적으로 이건 아주 소소한 궁금증인데 함수를 쓰실때 카멜표기법과 파스칼표기법을 번갈아가면서 쓰시는데 어떤 용도에 따라서 사용하시는지 궁금합니다..ㅎㅎㅎ

  • javascript
  • react
  • node.js
신지연 댓글 2 좋아요 0 조회수 280

7분 40초쯤 마지막 커밋 상태

해결됨

Git & GitHub, 원리부터 차근차근 - 근본깃

git rebase --continue 이후 파란색 추가는 충돌없이 커밋되어서 마지막 커밋이 '빨-초-파'가 될 것으로 이해했는데, 그림에 마지막 커밋상태가 '빨-초-흰' 인 이유가 뭘까요?

  • git
  • github
어린 당나귀 댓글 2 좋아요 0 조회수 106

console에 Object로 출력되지 않는 이유?

해결됨

한 입 크기로 잘라먹는 Next.js

🚨 아래의 가이드라인을 꼭 읽고 질문을 올려주시기 바랍니다 🚨 질문 하시기 전에 꼭 확인해주세요 - 질문 전 구글에 먼저 검색해보세요 (답변을 기다리는 시간을 아낄 수 있습니다) - 코드에 오타가 없는지 면밀히 체크해보세요 (Date와 Data를 많이 헷갈리십니다) - 이전에 올린 질문에 달린 답변들에 꼭 반응해주세요 (질문에 대한 답변만 받으시고 쌩 가시면 속상해요 😢 ) 질문 하실때 꼭 확인하세요 - 제목만 보고도 무슨 문제가 있는지 대충 알 수 있도록 자세한 제목을 정해주세요 (단순 단어 X) - 질문의 배경정보를 제공해주세요 (이 문제가 언제 어떻게 발생했고 어디까지 시도해보셨는지) - 문제를 재현하도록 코드샌드박스나 깃허브 링크로 전달해주세요 (프로젝트 코드에서 문제가 발생할 경우) - 답변이 달렸다면 꼭 확인하고 반응을 남겨주세요 - 강의의 몇 분 몇 초 관련 질문인지 알려주세요! - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 2.2)페이지 라우팅 설정하기 9:48 저는 Object 객체가 출력되지 않고 이렇게 출력이 되는데 {} 인걸 보니 객체로 불려와 지는건 알겠는데 왜 Object로 안오고 저렇게 오는지 궁금합니다

  • react
  • typescript
  • next.js
yyyeong0103 댓글 2 좋아요 0 조회수 183

네이버 쇼핑 링크 변경에 따른 실습 문의

미해결

[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)

안녕하세요 크롤링이 뭔지 아예 모르다가 이게 조금씩 눈을 뜨고 있는 뉴비입니다~! 네이버 쇼핑 홈페이지 변경 및 HTML 구조 변경으로 설명이 한번 더 되면 좋겠습니다 강의에 나온 것처럼 나무태그를 찾으려 해도 현재 기준 네이버 쇼핑 HTML 구조를 현재 강의 내용을 기반으로 따라 할 수가 없습니다ㅠㅠ(상위 클래스로 검색해도 안나오는..??) https://search.shopping.naver.com/ns/search?query=%EB%8B%AD%EA%B0%80%EC%8A%B4%EC%82%B4 기회가 된다면 업데이트를.. 안된다면 유투브로 보여주셔도 짤막하게라도 보여주시면 좋을거 같습니다!! 감사합니다~!

  • python
  • 웹-크롤링
한노크 댓글 2 좋아요 0 조회수 128

시간 기반의 ISR 사용 시 revalidate가 트리거 되는 시점

해결됨

한 입 크기로 잘라먹는 Next.js

안녕하세요, 선생님. 강의 잘듣고 있습니다. 시간 기반의 ISR 렌더링을 사용할 때 헷갈리는 부분이 있어서 질문 남깁니다. 저번 시간까지는 revalidate 시간을 설정하면 유저가 웹 페이지에 유입된 시점부터 지정한 시간 주기로 페이지를 재생성한다고 생각했습니다. 근데 이번 강의의 1:47초 부분을 보니까 클라이언트의 요청과는 관계없이 빌드된 시점부터 revalidate 되는 것인지 헷갈리더라고요. 예를 들어 revalidate를 60초로 설정하면 빌드된 시점부터 60초 주기로 페이지가 재성성되며 API를 호출하게 되는 것으로 이해해도 괜찮을까요?

  • react
  • typescript
  • next.js
메가 댓글 2 좋아요 0 조회수 226

Editor 컴포넌트 리렌더링

해결됨

한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지

아래 질문들을 보던 중 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;

  • javascript
  • react
  • node.js
kwkw 댓글 2 좋아요 0 조회수 140

채팅에 대해서 질문이 있습니다. ㅠㅠ

미해결

... // 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. 이렇게 계속해서 연결이 끊깁니다 어떻게 해야하나요?

  • rabbitmq
  • react
  • stomp
  • websocket
  • springboot
  • restapi
  • jwt
  • socketjs
유요한 댓글 1 좋아요 0 조회수 77

5-1 학습링크

미해결

실무 중심! FE 입문자를 위한 React

pdf에서 5-1링크 클릭햇는데 codeSandBox 페이지가 없다고 뜹니다. 새로운 링크 없나요??ㅠㅠ

  • react
  • redux
  • node.js
  • sass
  • swr
댓글 1 좋아요 1 조회수 284

useState vs useEffect 활용관련 문의

해결됨

한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지

useState는 componet의 구성요소의 상태값일 관리하고 상태변환시에 biz처리 및 관련된 자식 구성요소로 props 전달을 하고자 할때 사용하는 것으로 강의를 이해했습니다. 반면 useErrect는 라이프싸이클을 통해 biz 로직을 구현하고자 할때 사용하는 것으로 아래 이했습니다. mount - 초기 실행시 (초기 데이터 설정-db select통한 값을 설정 처리 등) update - state에서 관리되는 상태에 대한 실시간 확인과 처리(useState의 setXXXX는 비동기로 실시간 값이 어려워 useEffect를 활용해 v실시간 alidation을 체크하는데 있을것으로 이해하였습니다. 질문) 실무에서 useEffect의 어떻게 활용하나요? 지금은 hook을 배우는 단계라 실무에서 어떻게 사용될지도 많이 궁금합니다.

  • javascript
  • react
  • node.js
wonyongick 댓글 1 좋아요 0 조회수 177

Dynamic Array 의 size 정보가 저장되는 곳

해결됨

코딩테스트 [ ALL IN ONE ]

안녕하세요 좋은 강의 감사드립니다! 강의 9:20 "우리는 Dynamic Array의 size를 미리 알고 있기 때문에" 문장에서 궁금증이 생겼습니다. 우리는 Dynamic Array의 size를 머리속에 기억 하고 있기 때문에 a.append(4) 를 했을때 O(1)인것을 알지만 컴퓨터의 경우 a.append(4)를 했을때 Dynamic Array의 size를 어떻게 알고 값을 저장할까요?? 따로 저장이 될까요? size를 아는 경우 배열 포인터(배열 변수)에 저장된 초기 주소값 + size*Byte(자료형에 따라 다름) 으로 바로 접근 가능 하여 O(1) 이라고 납득이 되지만 size를 모를 경우 마지막 데이터가 있는 주소값으로 바로 가려면 array 를 전부 훑어서 O(n)이 될 수 있지 않을까 궁금했습니다. a 라는 배열 포인터에 초기 주소값과 size 정보를 저장해놓는다. 배열 포인터가 아닌 다른곳에 정보를 저장한다. array를 전부 훑는건 O(1)이다. 1번, 2번, 3번 중에 어떤 걸까요?? 그리고 검색하다 size와 capacity 에 대한 내용을 봤는데 capacity가 Dynamic array에서 처음 선언할때 비어 있는 index를 포함한 크기 로 알고있습니다. 위 제가 판단한것에서 1번, 2번 일경우 size 뿐만 아니라 capacity 정보도 저장해놔야 할것 같은데 저장한다면 어디에 저장 하는 걸까요?? 저장을 안한다면(3번) 직접 빠르게 훑어보고 값을 추가 or 삭제 하는 걸까요?? 강의 후반부에 설명해 주시는 내용이라면 죄송합니다.. 항상 감사합니다!

  • python
  • 코딩-테스트
  • 알고리즘
s3490147 댓글 2 좋아요 2 조회수 178

커리큘럼 작업형2 모의문제1 18분:-7지점 문의.

해결됨

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 제목: 커리큘럼 작업형2 모의문제1 18분:-7지점 문의. 내용: 데이터전처리 & 피처엔지니어링을 합친 코너에 baseline, label, one-hot이 소개되는데 이들이 각각 전처리인지 피처엔지니어링 절차에 해당하는지를 몰라 gpt에 물어보니 baseline은 6) 모델 선택,훈련,평가,최적화 Label은 5) 검증 데이터 분리 및 6) 모델 선택, 훈련, 평가, 최적화 One-hot은 3) 데이터 전처리 및 4) 피처 엔지니어링에 해당한다고 하네요. 이것은 머신러닝 순서라고 하신 아래의 1~7에서 강의에서는 보시다시피 3)~4)단계인 데이터전처리&피처엔지니어링 코너에서 소개하고 있는데 그 내용과 다른 설명 입니다. (강의에서의 절차 정리) 1) 문제정의, 라이브러리/데이터 불러오기(로드) 2) 탐색적 데이터분석(EDA) 3) 데이터 전처리(결측값제거, 이상치제거) 4) 피쳐엔지니어링(모델 성능(예측력) 향상) 5) 검증데이터분리(Train/validation나누기) 6) 모델 선택,훈련,평가,최적화 7) 예측 8) csv파일 생성 그렇다고 강의에서 구분하여 설명하지 않으셨고, 주석으로 설명이 달린 것이 없이 왔다갔다 하면서 설명을 하시니 도대체 각각이 어떤 절차에 해당하는지 그 차이를 모르겠고, 지금 어떤 절차 중인지 혼동되며 정리를 하려는데 정리가 안되고 있습니다. 정리를 하기 위해서는 절차별 업무수행 프로세스를 정리해야 하는데 '지금과 같은 상황(절차별 프로세스가 아닌 동일한 유형을 묶어서 설명'하는 방식에서는 절차에 대한 정리를 할 수 없게 됩니다. 정리를 하면 강의 뒤에 가서는 다시 앞으로 가서 수정하기를 반복하시니 정리 했던 것을 다시 정리해야 하거나 정리가 안되는 현상이 자주 발생합니다. 절차적 프로세스를 정리하는 데 유사한 유형별 모음이라면서 서로 다른 절차에 속한 것들을 묶어서 설명하려면 혼동되지 않도록 설명을 적시해 줘야 하나 반복적으로 그러한 습관이 나타나지 않는 것을 보면 이러한 점을 의식하지 않는 것 같다는 인상입니다. 실무에 대한 이론 정리 보다는 실무적인 접근을 하시는 것으로 보이며 그래서 실수하는 것을 보여주기 위해 위아래를 오르내리며 수정과정을 되풀이 하여 보여주시는 데 동시에 절차(프로세스)대로 이론을 정리하는 입장에서는 앞에서 정리한 것이 매번 날라간다는 것이고 계속 이런 식이면 정리하기가 어려워 지죠. 현재 시점에서 보면 미래에 발생할 것을 먼저 지금 정리하는 것이 되므로 시점이 꼬이므로 혼선스러워 집니다. 이 강의에서는 정리하는 개념에 대한 고민은 없어 보입니다. 일단 chatgpt의 답변이 맞는지부터 확인을 요청 드립니다.

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
강민균 댓글 2 좋아요 0 조회수 117

강의 듣다가 유료pycharm에 비해 vscode지원기능이 아쉬워서 확장프로그램 만들었는데 여기 공유해도 될까요?

미해결

파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트 (장고 4.2 기준)

04-10 장고 기본 CBV API (Generic display views) - ListView 강의를 듣던 중 index.html 에서 {% load django_bootstrap5 %}나 {% bootstrap_pagination %} 를 타고 들어가서 소스를 보는 기능이 전체검색 말고는 vscode에서 다른 방법이 없는 것 같아서 유료버전pycharm 처럼 흉내내서 확장프로그램을 만들어봤습니다. 저만 쓰게 될거같아서.. 필요하신 분들께 알리고 피드백을 받고 싶은 마음에 여기에 링크를 남기고 공유해도 혹시 괜찮을까요? https://github.com/southglory/python-package-definition-navigator https://marketplace.visualstudio.com/items?itemName=QG-devramyun.python-package-definition-navigator 감사합니다.

  • react
  • python
  • django
  • web-api
  • htmx
coolbirds 댓글 1 좋아요 0 조회수 183

인기 태그

인프런 TOP Writers

주간 인기글