앱마다 파이어베이스 프로젝트도 각각 생성하시나요?
해결됨
350개의 개인 앱을 만들어 월급의 7배 수익을 달성한 방법
앱마다 파이어베이스 프로젝트도 각각 생성하시나요? 아니면 1개 파이어베이스에 수백개의 앱이 연결되어있나요?
- android
- Google-Ads
- admob
- 수익화
173만명의 커뮤니티!! 함께 토론해봐요.
해결됨
350개의 개인 앱을 만들어 월급의 7배 수익을 달성한 방법
앱마다 파이어베이스 프로젝트도 각각 생성하시나요? 아니면 1개 파이어베이스에 수백개의 앱이 연결되어있나요?
해결됨
한 입 크기로 잘라먹는 Next.js
해당 강의에서 선생님이 설명해주시기로는, 페이지라우터와 앱라우터의 차이로 인해 앱 라우터 버전에서는 리퀘스트 메모이제이션이 생겼다고 하셨습니다. 페이지라우터에서는, 트리의 최상단에서 api요청이 발생한다음에 해당 결과값을 각 컴포넌트에 나눠주는 구조이고, 앱 라우터는 모든 서버컴포넌트가 각각 api를 호출해야하는 구조라고 하셧는데, 제가 테스트 해본결과, 서버컴포넌트 끼리도 props로 데이터를 주고받을 수 있는것 같습니다. 그래서 햇갈리는 부분이 존재하는데요. import "./globals.css"; import Link from "next/link"; import style from "./layout.module.css"; import { BookData } from "@/types"; function InnerFooter({ books }: { books: BookData[] }) { return <>{books[0].author}</>; } async function Footer() { const response = await fetch( `${process.env.NEXT_PUBLIC_API_SERVER_URL}/book` ); if (!response.ok) { return <footer>제작 @winterlood</footer>; } const books: BookData[] = await response.json(); const bookCount = books.length; return ( <footer> <footer>제작 @winterlood</footer> <div>{bookCount}개의 책이 존재함</div> <InnerFooter books={books} /> </footer> ); } export default function RootLayout({ children, }: Readonly<{ children: React.ReactNode; }>) { return ( <html lang="en"> <body> <div className={style.container}> <header> <Link href={"/"}>📚 ONEBITE BOOKS</Link> </header> <main>{children}</main> <Footer /> </div> </body> </html> ); } 제가 테스트 한 코드에서는 Footer 컴포넌트가 내부적으로 InnerFooter 컴포넌트를 호출하면서 데이터를 넘겨주고 있습니다. 선생님이 설명하신 부분이 제가 이해한 부분과는 다른걸까요?
미해결
코드로 배우는 React 19 with 스프링부트 API서버
안녕하세요 강의를 듣다 궁금한 점이 생겨서 질문 드립니다. 강의에서는 list페이지와 add페이지로 이동할때 useCallbak을 사용하여 이동하는데, const handleClickList = () => { navigate('list'); }; const handleClickAdd = () => { navigate('add'); }; 다음과 같이 useNavigate만 사용해도 라우터 이동은 똑같지 않나요??
해결됨
한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
글 수정기능을 추가하고 useReducer로 바꿔서 했는데 글을 추가해도 새로운 내용이 나타나지 않고, 마지막 요소가 다시 추가되었습니다. [{content:"To1"}, {content:"To1"}] 확인해보니 컴포넌트에서 받은 props를 useState초기화값으로 넣으면 바뀌지 않는 사실을 알게되었습니다. 하지만 이부분을 useEffect형식으로 바꿔 적어주니 새로운 내용으로 바뀌는 것을 확인했습니다. // props content를 useState 초기화값으로 적용 const TodoItem = ({ content, id, isDone, date, onUpdate, onDelete }) => { const [upContent, setUpcontent] = useState(content); ... } //////////////////////////////////////////// // useEffect 적용 const TodoItem = ({ content, id, isDone, date, onUpdate, onDelete }) => { const [upContent, setUpcontent] = useState(""); useEffect(() => { if (content) { setUpcontent(content); } }, [content]); ... } useReducer를 적용하지 않을때 props를 useState초기화값을 넣어도 잘 구동되었습니다. // props content를 useState 초기화값으로 적용 const TodoItem = ({ content, id, isDone, date, onUpdate, onDelete }) => { const [upContent, setUpcontent] = useState(content); ... } 이것이 리액트 라이프 사이클 때문에 이러한 현상이 발생한것인가요?
미해결
따라하며 배우는 리액트, 파이어베이스 - 채팅 어플리케이션 만들기[2023.12 리뉴얼]
리뉴얼 된 자료를 확인하여 궁금하여 문의드립니다! 현 강의에서는 notification 관련 자료가 없고, 예전 리뉴얼전 버전에서 자료가 있던데, 빠진 이유가 있나요? 그리고, 전에 있던 강의는 이젠 강의를 들을 필요가 없는지 궁금하여 문의드립니다!
해결됨
[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
문의드립니다.
미해결
[백엔드/예외처리 시나리오/집계 최적화] 백엔드 포트폴리오와 실무 이력 강화 전략. 올인원 PART1
제가 알기로는 request_pay() 매개변수로 포트원 대시보드에서 확인가능한 storeId 와 channelkey을 추가해서 요청해야, 결제내역에 남는걸로 알고있습니다. 결제기록 안남으시면 참고하세용
미해결
김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요 영한님 코드는 제가 이해한 바로는 세션 객체를 돌리는 스레드가 채팅을 다른 사람에게 전파하는 코드도 돌리는 걸로 알고 있습니다. 저는 채팅을 다른 사람에게 보내는 것을 맡은 객체를 따로 만들고 스레드도 따로 돌리게 만들었습니다. 혹시 이렇게 하는 게 좋은 건지 궁금합니다. 이걸 가능하게 하기 위해서 ConcurrentLinkedQueue를 사용했고 각 세션이 채팅을 받으면 이 queue에 채팅 내용을 넣으면 이 queue를 담당하는 스레드에서 큐를 비워가면서 채팅을 각 사용자에게 보내게 했습니다. 근데 큐가 차 있는지 확인하는 방법을 잘 몰라서 0.1초마다 while문을 돌려서 큐가 차 있는지 확인하고 차 있으면 채팅을 보내게 했습니다. 이 방식이 굉장히 마음에 안 드는데 더 좋은 방법이 뭐가 있을지 궁금합니다.
미해결
React 완벽 마스터: 기초 개념부터 린캔버스 프로젝트까지
수업내용이 있는 깃주소를 알 수 있을까요? 노션에 찾아봤는데 없는것 같아서요.
미해결
김영한의 실전 자바 - 중급 1편
1. Object 클래스 문제와 풀이 부분에 오타 제보입니다. 넓이(width)-->너비(width) 수정하면 좋을 것 같습니다.
미해결
React 완벽 마스터: 기초 개념부터 린캔버스 프로젝트까지
function HeartIconBtn({ isFavorite = false }) { return ( <button style={{ backgroundColor: 'white', border: 'none', }} > {isFavorite ? ( <img style={{ width: '32px', color: 'red' }} src="/images/heart-fill-icon.svg" alt="" /> ) : ( <img style={{ width: '32px', color: 'red' }} src="/images/heart-icon.svg" alt="" /> )} </button> ); } function LinkIconBtn({ link }) { return ( <> {link ? ( <a href={link} target="_blank"> <img style={{ width: '36px' }} src="/images/link-icon.svg" alt="lecture link" /> </a> ) : null} </> ); } export default function CourseItem({ image, title, description, isFavorite, link, }) { return ( <> <div style={{ display: 'flex', gap: '30px', justifyContent: 'center', alignItems: 'center', }} > <img style={{ width: '20%', borderRadius: '10px' }} src={image} alt={description} /> <div style={{ display: 'flex', flexDirection: 'column', justifyContent: 'center', width: '80%', gap: '10px', }} > <p style={{ fontSize: '16px', fontWeight: 'bold', color: 'black' }}> {title} </p> <p style={{ fontSize: '16px', fontWeight: 'bold', color: 'gray' }}> {description} </p> </div> <div style={{ display: 'flex', gap: '10px' }}> <LinkIconBtn link={link} /> <HeartIconBtn isFavorite={isFavorite} /> </div> </div> </> ); } CourseItem 컴포넌트에서 LinkIconBtn 을 포함하고 있습니다. LinkIconBtn 컴포넌트에서 function LinkIconBtn({ link }) { return ( <> {link ? ( <a href={link} target="_blank"> <img style={{ width: '36px' }} src="/images/link-icon.svg" alt="lecture link" /> </a> ) : null} </> ); } 위 처럼 Fragment 를 사용하거나 <div></div> 를 사용해서 wrapping 을 하지 않으니깐 아래 처럼 오류가 발생하는데 이유를 정확하게 모르겠습니다...
미해결
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? ( 예 /아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? ( 예 /아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? ( 예 /아니오) [질문 내용] 제목그대로요 어떤차이가 있고, 현업에서도 그러는지 궁금합니다.
해결됨
350개의 개인 앱을 만들어 월급의 7배 수익을 달성한 방법
안녕하세요. 좀비님. 저는 개발은 좋은데 사회생활이 힘들어서 회사탈출 방법을 이것저것 시도해보는 과정중 좀비님 블로그를 발견하게 되었습니다. 1인 개발 이거 될까라는 미래에 대한 확신이 부족한 상태로 몇년이 흘렀는데 좀비님 글을 발견하게 된것이 너무나 큰 행운인것 같습니다. 여러가지 경험과 팁들을 풀어주셔서 너무 감사드립니다. 질문: 특정 앱 출시후 광고를 유지할지 버릴지 판단하는 좀비님만의 기준이 있으신지 문의드립니다. 예를 들어 2주동안 2000원/일 예산으로 각종 광고를 테스트해보고 손익분기점을 못 넘기면 이 앱은 버린다와 같은 좀비님만의 기준에 대해 문의드립니다. 혹시 공개하시기 불편한 내용이면 저도 삽질해가면서 저만의 기준을 만들어보겠습니다. 감사합니다.^^
해결됨
[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
주기적으로 업데이트한다고 강의 소개에 크게 적어놓으셨는데, 왜 2023년 초 이후로 업데이트가 없나요? 그리고 새로운 버전 강의가 나왔던데, 이전 버전 수강자들에게는 무료로 제공되나요? 이 강의가 저렴한 것도 아니고 몇십만 원이나 하는데, 그 정도 보상은 해주셔야 한다고 생각합니다.
미해결
자바 동시성 프로그래밍 [리액티브 프로그래밍 Part.1]
안녕하세요 단일연산변수 api에 관련해서 질문드립니다! 13:50 ppt에서 단일연산변수를 사용한(왼쪽) 코드에서 for문에서 counter.incrementAndGet()을 호출하는부분이 있는데 해당 메서드 실패시 재연산을 수행하는 코드가 없더라고요 그래서 해당 api는 내부적으로 cas연산을 사용하는데 내부적으로 cas연산이 실패하는경우 재시도를 통해서 최종적으로 나오는 결과값을 무조건 보장해주는걸로 이해했는데 맞는걸까요??
미해결
자바 동시성 프로그래밍 [리액티브 프로그래밍 Part.1]
안녕하세요 선생님 강의 재밌게 듣고 있습니다! 24:27분 ppt에서 synchronized 블럭안에서 참조되는 모든 변수들은 메모리로부터 읽어들여지고 블럭을 벗어나면 그동안 수정된 모든 변수들이 즉시 메모리로 반영하게 해준다고 설명해주셨는데 왜 연산이 수행되고나서 바로 적용이 되는게 아닌 블럭을 벗어나야지 적용이 되는건가요?? 내부적으로 성능최척화를 위해서 그런건가요?? 이렇게 블럭을 벗어나고 적용이되는경우로 인해 생기는 다른 문제점은 없나요?? (블럭에서 연산 시간이 오래 걸려 가시성이 늦어지는 등)
해결됨
[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
기존에 프론트엔드 강의 수강생들에 대한 혜택은 없는건가요?? 거기는 이제 업데이트 안되는건가요?? 아 너무한데.....
미해결
자바 ORM 표준 JPA 프로그래밍 - 기본편
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] category, item 내용 중 질문있습니다. 하나의 카테고리에 여러 아이템이 들어갈 수 있다는데 이게 왜 다대다 관계인지 이해가 안갑니다,,, 쉽게 설명 부탁드려여 ㅠㅠㅠ
미해결
자바 ORM 표준 JPA 프로그래밍 - 기본편
아래 코드에서 em.flush()와 em.clear()를 사용하면 findChild가 삭제되는데 em.flush()와 em.clear()를 사용하지 않으면 findChild가 삭제되지 않는 이유에 대해서 잘 모르겠습니다. public class JpaMain { public static void main(String[] args) { EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello"); EntityManager em = emf.createEntityManager(); //code EntityTransaction tx = em.getTransaction(); tx.begin(); try { Child child1 = new Child(); Child child2 = new Child(); Parent parent = new Parent(); parent.addChild(child1); parent.addChild(child2); em.persist(parent); // flush, clear 사용 여부에 따라 remove가 안됨 em.flush(); em.clear(); Child findChild = em.find(Child.class, 1L); System.out.println("findChild.getId() = " + findChild.getId()); em.remove(findChild); tx.commit(); } catch (Exception e) { tx.rollback(); e.printStackTrace(); } finally { em.close(); } emf.close(); } } @Entity public class Parent { @Id @GeneratedValue private Long id; private String name; @OneToMany(mappedBy = "parent", cascade = CascadeType.ALL) private List<Child> childList = new ArrayList<>(); // 연관관계 편의 메서드 public void addChild(Child child){ childList.add(child); child.setParent(this); } } @Entity public class Child { @Id @GeneratedValue private Long id; private String name; @ManyToOne @JoinColumn(name = "parent_id") private Parent parent; }
해결됨
한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
안녕하세요 현재 useReducer를 이용하여 투두리스트 업그레이드 부분중에 몇가지 질문이 있습니다. useReducer에 대해서 어느정도 이해는 했지만 dispatch는 어느 부분에 작성을 해야되는지 조금 헷갈리는데 이 강의에서는 onCreate 함수안에 dispatch를 작성했는데 이 함수에 dispatch를 사용한 이유가 조금 헷갈립니다. 그리고 useRudcer는 비슷한 기능을 하는 함수들을(업데이트, 삭제) 좀 더 간단하게 만들기 위해 사용한다라고 이해하고 있으면 되는지도 궁금합니다. 마지막으로 리덕스와 조금 비슷한것같은데 useReducer와 리덕스는 완전 다른 개념인건가요?