slack 초대 부탁드립니다
해결됨
코딩은 실전이다! - Git알못을 위한 깃린이코스(Git, Github 실습위주)
강의 잘 듣고 있습니다. mekdugi@gmail.com입니다.
- github
- 버전관리시스템
- git
173만명의 커뮤니티!! 함께 토론해봐요.
해결됨
코딩은 실전이다! - Git알못을 위한 깃린이코스(Git, Github 실습위주)
강의 잘 듣고 있습니다. mekdugi@gmail.com입니다.
미해결
실전! Querydsl
JPA(ORM) 장점 1) RDB에 종류와 관계없이 사용 가능하다. 추후 DB 변경이나 코드 재활용에 용이하다. 2) 비지니스 로직에 집중할 수 있다. 3) 테이블 생성, 변경 등 엔티티 관리가 간편하다. 4) 쿼리에 집중할 필요 없어 빠른 개발이 가능하다. 단점 1) 어렵다. 단방향, 양방향, 임베디드 관계 등 이해해야할 내용이 많으며, MyBatis(SQL Mapper) 장점 1) JPA에 비해 쉽다. SQL 쿼리를 그대로 사용하기에 복잡한 Join, 튜닝 등을 좀더 수월하게 작성 가능하다. 2) SQL의 세부적인 내용 변경 시 좀 더 간편하다. 3) 동적 쿼리 사용 시 JPA보다 간편하게 구현 가능하다. 단점 1) 데이터 베이스 설정 변경 시 수정할 부분이 너무 많다. (Oracle의 페이징 쿼리를 MySQL에서 사용 불가능!) 2) Mapper작성부터 인터페이스 설계까지 JPA보다 많은 설계와 파일, 로직이 필요하다. 3) 특정 DB에 종속적이다. Querydsl 장점 1) 쿼리를 자바 코드로 작성 2) 문법 오류를 컴파일 시점에 잡을 수 있음. 3) 쉬운 SQL 스타일 문법(복잡한 쿼리 작성 용이) 질문 : Querydsl 초반부만 듣고 있는 수강생입니다. 1) 서비스가 MVC + MYBatis에서 JPA + querydsl 바꾸는 점에 있어 생기는 기본적인 문제들이 있을까요? 2) QueryDSL 이 MyBatis 를 대신해 커버 가능할까요 ?
해결됨
코딩으로 학습하는 GoF의 디자인 패턴
안녕하세요. 싱글톤에서 Early, Lazy 초기화의 차이를 공부하기 위해 클래스 로드에 개념을 처음으로 딥하게 공부해보고 있습니다. 클래스 로드와 사용에 따른 초기화간 heap 메모리 할당이 되는지도 공부하기 위해 위와 같이 트래킹해봤습니다. 저는 트래킹 결과를 보고 아래와 같이 해석했습니다. 1. 사용하지 않으면 early, lazy 모두 초기화되지 않는다. 2. early 는 getInstance() 메소드로 진입할 때 초기화 된다. lazy 는 getInstance() 메소드가 끝날 때 Holder 를 통해 초기화 된다. 하지만 강의에는 early 초기화시 사용하지 않아도 생성된다고 말씀해주셨습니다. 그렇다면 캡쳐 1에서 인스턴스가 보여야된다고 생각했는데 보이지 않아 혼동이 와서 질문 드립니다. 혹시 제가 개념이 헷갈리거나 트래킹을 잘못하고 있는 것일까요..? ㅠㅠ public class App { public static void main ( final String [] args) { singleton () ; } private static void singleton () { final EarlyInitializationSingleton early = EarlyInitializationSingleton . getInstance () ; // 캡쳐 1 final LazyInitializationSingleton lazy = LazyInitializationSingleton . getInstance () ; // 캡쳐 3 System . out . println ( "end" ) ; // 캡쳐 5 } } public class EarlyInitializationSingleton { private static final EarlyInitializationSingleton INSTANCE = new EarlyInitializationSingleton () ; private EarlyInitializationSingleton () { } public static EarlyInitializationSingleton getInstance () { return INSTANCE ; // 캡쳐 2 } } public class LazyInitializationSingleton { private LazyInitializationSingleton () { } private static class LazyInitializationSingletonHolder { private static final LazyInitializationSingleton INSTANCE = new LazyInitializationSingleton () ; } public static LazyInitializationSingleton getInstance () { return LazyInitializationSingletonHolder . INSTANCE ; // 캡쳐 4 } }
해결됨
실전 리액트 프로그래밍
React.memo 가 props 비교를 통해 리렌더링을 막아줄 수 있는 유용한 기능이라는 것을 알게되었는데요, 그렇다면 리액트에서는 왜 React.memo 적용을 모든 컴포넌트에 default로 제공하지 않는지 궁금합니다. 제가 구글링을 해본 결과 2년 전에 Dan Abramov가 트위터에 이런 글을 올렸더라구요.. ``` Ask yourself: Why don’t you put Lodash memoize() around every function? Wouldn’t that make all functions faster? Do we need a benchmark for this? Why not? ``` 저는 React.memo가 특정 컴포넌트의 이전 상태의 props를 기억하고 있다가 새로 렌더되어야할 상황에 전달된 props와의 비교를 통해 선택적으로 렌더링을 결정하는것이라고 생각했는데, 저 트위터를 보면 마치 React.memo가 컴포넌트 전체를 메모리 어딘가에 기억해야하고 이 작업이 오히려 성능에 악영향을 줄 수 있다는 뉘앙스로 들렸습니다. 횡설수설 서론이 길어진 것 같아서 죄송합니다. React.memo를 왜 모든 컴포넌트에 적용하면 안좋은지 궁금합니다!
해결됨
코딩으로 학습하는 GoF의 디자인 패턴
안녕하세요. 기선님. 좋은 강의 감사합니다. 이번 수업을 들으면서 궁금한 점이 생겨 질문 남깁니다. 1:34초쯤 Settings enum 클래스에 number 필드 및 게터 세터를 생성하셨는데, 이러한 상황에서도 동기화 블록없이 커스터마이징된 enum 객체가 쓰레드-세이프한건가요? 답변 부탁드립니다. 감사합니다.
미해결
따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
강의에 나오는 모든 과정을 따라하고 나니, travis ci 는 성공하였는데 elastic beanstalk 에서 다음과 같은 에러가 나오면서 주소로 들어가보면 502 상태입니다. Environment health has transitioned from Info to Severe. ELB processes are not healthy on all instances. Application update completed 65 seconds ago and took 4 minutes. ELB health is failing or not available for all instances. 그래서 올려주신 코드와의 차이를 보니, 지금까지 만든 docker-compose.yml 파일이 강사님의 코드에는 docker-compose-dev.yml이 되어있고, docker-compose.yml 에는 다음과 같은 코드가 들어가있네요. version : " 3 " services : react : build : context : . dockerfile : Dockerfile ports : - ' 80:80 ' volumes : - /usr/src/app/node_modules - ./:/usr/src/app stdin_open : true 여태까지 만든건 개발용인거 같은데 둘중 어떤걸 사용하는게 맞는건가요? 그리고 docker-compose.yml은 docker-compose up으로 실행이 가능했는데, docker-compose-dev.yml은 어떻게 실행하나요?
미해결
자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
안녕하세요 강사님! solution함수에서 파라미터 n은 사용하지 않으셨는데 그럼 없어도 상관없는건가요?
해결됨
코딩으로 학습하는 GoF의 디자인 패턴
안녕하세요. 싱글톤 하나만 들었는데도 안일하게 사용하고 있던 지식들이 채워지는 너무너무 좋은 강의입니다. 강의를 들으면서 공부하는 데 질문이 있어 남깁니다. --- 1. 저는 공부하는 자료에 대해서 가능하면 블로깅을 남기고 있습니다. 남에게 설명할 수 있는 수준이 되어야만 진정으로 이해하는 것이라고 생각하기 때문입니다. 혹시 강의 내용을 블로깅하는데 있어 제약사항이 있을까요? ex) - 강의 장표 캡쳐 불가 - 강의 장표의 질문 노출 불가 2. 동영상 뿐만이 아니라 강의 장표에 많은 질문들로 한번 더 생각할 기회를 주시는 것 같아 너무너무 감사합니다. 물론 제가 먼저 찾고 공부하는 것이 우선이지만, 제가 답을 냈을 때 비교를 할 수 있는 답이 있으면 더 좋을 것 같은데 혹시 공개되어 있을까요? 다시 한번 좋은 강의 너무너무 감사합니다!!!!
미해결
실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? ( 예 /아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? ( 예 /아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? ( 예 /아니오) [질문 내용] 아래 처럼 에러가 뜹니다. Could not find gradle.plugin.com.ewerk.gradle.plugins:querydslplugin:1.0.10 로딩이 안되네요. buildscript { dependencies { classpath( "gradle.plugin.com.ewerk.gradle.plugins:querydslplugin:1.0.10" ) } } plugins { id 'org.springframework.boot' version '2.6.1' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java' } apply plugin : "com.ewerk.gradle.plugins.querydsl"
해결됨
코딩은 실전이다! - Git알못을 위한 깃린이코스(Git, Github 실습위주)
casthebinz@gmail.com 초대 부탁드립니다 !
해결됨
스프링 부트 개념과 활용
학습하시는 분들이 혹여나 오류가 있을까봐 게시판에 남겨놓습니다. spring boot 2.6버전 이상 쓰시는 분들은 테스트 코드가 오류가 날수 있습니다. Caused by: java.lang.IllegalStateException: Set the spring.mongodb.embedded.version property or define your own MongodConfig bean to use embedded MongoDB at org.springframework.util.Assert.state(Assert.java:76) at org.springframework.boot.autoconfigure.mongo.embedded.EmbeddedMongoAutoConfiguration.determineVersion(EmbeddedMongoAutoConfiguration.java:148) at org.springframework.boot.autoconfigure.mongo.embedded.EmbeddedMongoAutoConfiguration.embeddedMongoConfiguration(EmbeddedMongoAutoConfiguration.java:128) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154) ... 159 more 해결책을 찾아보니 다음과 같이 해결해줄수 있었습니다. @DataMongoTest @TestPropertySource ( properties = "spring.mongodb.embedded.version=3.5.5" ) @ActiveProfiles ( "test" ) spring boot 2.6이상버전 부터는 spring.mongodb.embedded.version은 자동 구성된 임베디드 MongoDB를 사용하도록 설정해야하는것 같습니다. 참고: https://stackoverflow.com/questions/70047380/excluding-embededmongoautoconfiguration-failed-in-spring-boot-2-6-0 https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.6-Release-Notes#embedded-mongo 혹시 에러때문에 실패하시는분들이 있으시면 참고하시면 좋을것 같습니다. 그리고 교안도 수정해주신다면 감사하겠습니다. 항상 좋은강의 만들어주셔서 감사합니다.
미해결
실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
선생님 언제나 좋은강의 감사드립니다! 선생님께서는 실무에서 왠만하면 셋터를 전부 제거 하신다고 알려주셨는데요. Book 클래스에서 Setter를 제거하려고 시도하다가 나온 의문점이 있어 질문드립니다. 밑의 코드와 같이 작성하였는데요. 이 경우 author와 isbn필드로 인해 어쩔수없이 private setter를 두개 둘수밖에없었습니다. 이와같이 private setter를 두는것이 옳을지, 필드를 static으로 바꾸는게 좋을지에 대한 질문인데요 Book 객체의 경우 필드가 두개밖에 없어서 static으로 바꿔줘도 상관없을거라고 생각은하는데 실무에서는 무수히 많은 필드가 있는 객체가 있을경우 static 필드 vs private 셋터중 어떤게 옳은 방법인지 궁금해서 질문드립니다. @Entity @DiscriminatorValue ( "B" ) @Getter @NoArgsConstructor ( access = AccessLevel . PROTECTED ) public class Book extends Item { @Setter ( value = AccessLevel . PRIVATE ) private String author ; @Setter ( value = AccessLevel . PRIVATE ) // static으로 만드는것을 고려? private String isbn ; public static Book createNewBook ( String author , String isbn , String name , int price , int quantity ) { Book book = new Book () ; book . setAuthor ( author ) ; book . setIsbn ( isbn ) ; book . setName ( name ) ; book . setPrice ( price ) ; book . setStockQuantity ( quantity ) ; return book ; } }
해결됨
실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
지금 예제에서는 Book만 수정을 하니 만약에 Book만 가지고 있는 멤버인 ISBN과 작가를 수정하려면 이렇게 케스팅 해주는 방법밖에 없을까요? updateItem 메소드 하나로 item을 상속 받는 구현체들인 Book, Album, Movie를 업데이트 하는 방법이 있는지 궁금하고 혹은 있더라도 그것 보다는 각각을 따로 Dto를 만들어서 updateBook 이런식으로 하는게 더 좋나요? 저는 일단 다운캐스팅으로 Dto 따로 안만들고 했습니다.
미해결
Slack 클론 코딩[실시간 채팅 with React]
안녕하세요 제로초님! 그라바타 적용하다가 data.email 이 새로고침 시에 오류가 나서 질문 드립니다.!!! 먼저, 오류나 경고 메시지들 보고 라우터 문제인가 싶어서 (라우터 v6 사용 중입니다. ) 라우터 관련해서만 구글링 하다가, data.email가 아닌 data만 사용하면 새로고침 시에도 문제 없다는 걸 알았는데요.. data를 콘솔로 찍어보니 두번 출력이 되면서, 첫번째는 undefined로 나오고 두번째는 정상으로 나오는데data가 undefinde일 때 랜더링이 되서 그런 건가?? 하는 생각이 들긴했는데 이게 왜 저렇게 되는 건지 navigate로 페이지 이동되면서 저렇게 되는 건지 data가 언디파인드 인데도 login으로 페이지도 안넘어가는 상황입니다 에러 원인에 대한 판단이 잘 안서서 해결을 못하고 있습니다ㅠㅠ 혹시 해결 방향을 잡아주실 수 있을까요??? < 컴포넌트에서 data.email이 사용될 때 새로고침 > < data만 사용할 때 새로고침 > 제 코드 입니다! import axios from "axios" ; import React , { FC , useCallback , useEffect } from "react" ; import { useNavigate } from "react-router" ; import useSWR from "swr" ; import fetcher from "@src/utils/fetcher" ; import { Channels , Chats , Header , MenuScroll , ProfileImg , RightMenu , WorkspaceName , Workspaces , WorkspaceWrapper , } from "./style" ; import gravatar from "gravatar" ; const Workspace : FC = ({ children }) => { const { data , error , mutate } = useSWR ( "http://localhost:3095/api/users" , fetcher , { dedupingInterval : 100000 , loadingTimeout : 900000 , } ); const onLogout = useCallback (() => { axios . post ( "http://localhost:3095/api/users/logout" , null , { withCredentials : true , }) . then (() => mutate ( false , false )); }, []); const navigate = useNavigate (); if ( ! data || data === undefined ) { navigate ( "/login" ); } console . log ( "@@@data" , data ); return ( <> < Header > < RightMenu > < span > { /* <ProfileImg src={gravatar.url(data, { s: "28px", d: "retro" })} alt={data} ></ProfileImg> */ } </ span > </ RightMenu > </ Header > < button onClick ={ onLogout } > 로그아웃 </ button > < WorkspaceWrapper > < Workspaces > test </ Workspaces > < Channels > < WorkspaceName > Clone </ WorkspaceName > < MenuScroll > MenuScroll </ MenuScroll > </ Channels > < Chats > Chats </ Chats > </ WorkspaceWrapper > { children } </> ); }; export default Workspace ;
미해결
실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
Category테이블 구현 테스트를 해보려고 하는데요 public class Category { @Id private Long id; private String name; @ManyToOne @JoinColumn(name="PARENT_ID") private Category parent; } Category 저장테스트 해보려고하는데 parent의 동작이 어떻게 되는지 이해가 되지 않습니다.
해결됨
코딩은 실전이다! - Git알못을 위한 깃린이코스(Git, Github 실습위주)
bethejs30@gmail.com 초대 부탁드려요!!!
미해결
파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
이진석 강사님 안녕하세요~! 다름이 아니라, 강의를 들으면서 등장하는 예제 코드들을 학습을 위해서 github에 올리면서 정리하고 싶습니다. 그런데 강사님 저작권에 위반이 되지는 않을까 해서 스터디한 예제 코드들을 github에 게시하는 것이 괜찮을지 여쭤보고 싶습니다...! 늘 질문에 대해 유익한 답변들을 주셔서 감사 드립니다. 그럼 감사합니다.
해결됨
코딩은 실전이다! - Git알못을 위한 깃린이코스(Git, Github 실습위주)
깃을 잘 다뤄보고싶습니다!! dumi3345@gmail.com 초대해주시면 감사하겠습니다ㅎㅎ
미해결
실전! Querydsl
안녕하세요 영한님 감사합니다 ^_^ 08:13 보시면 em.flush를 해주시는데 필수인건가요 ?? flush을 쓰지 않아도 자동으로 나가는걸로 알고있습니다. clear만 해도 될까요?? 실험결과 clear만 써주면 되긴합니다만 flush를 별도로 또 호출해줘야 더 안전한 코드인가요??
해결됨
[리뉴얼] React로 NodeBird SNS 만들기
댓글 등록하고 버튼 눌렀을때 User 값이 안들어오는 것처럼 에러가 뜨는데 그 상태에서 바로 새로고침하면 값이 들어가있네요 분명 통신과정에서 올바르게 include한 전체 값을 들고오는게 맞는데 뭐가 문제인걸까요....?