inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

서버가 여러대일때 createdDate, updatedDate 처리?

미해결

실전! 스프링 데이터 JPA

안녕하세요. 보통 createdDate 나 updatedDate 같은걸 등록할때 서버쪽에서 시간을 얻어서 등록하나요? 만약 서버가 여러개 있다고 할때 각 서버마다 아주 미세하게 시간이 다를수도 있을거 같은데요. 그럼 실제 A서버에서 등록한 시간이 B서버에서 등록한 시간보다 느린데 빠르게 등록될수도 있을거같아서요. 차라리 db에서 제공하는 default값이나 트리거등으로 값을 넣어주는게 확실하고 더 낳지 않나요? 실무에선 보통 어떻게 처리하는지 궁금합니다. 1. 외부타임서버에서 가져오는건 시간 텀이 있을수 있으니 내부에 NTP서버를 두고 시간갱신을 한다. 이떄 NTP클라이언트들의 시간갱신을 텀을 보통 얼마나 주는지도 궁금합니다. 24시간씩 두지는 않을거 같고 6시간? 1시간? 10분? 2. 시간이 중요할거 같으면 db에서 처리한다. 그리고 시간업데이트할떄 연관된 엔티티끼리의 createdDate 시간은 같이 맞추나요? 아님 조금 차이가 나둬 상관없으니 각각 시간을 구해서 업데이트하나요? 아님딱히 중요한건 아니니 그냥 개별로 업데이트 하나요? 예를들어 ORDER, ORDER_ITEM, DELIVERY, ORDER_HISTORY(ORDER와 N:1의 crud내역) 엔티티가 있을때 같은 주문일경우 각각의 엔티티의 시간을 똑같이 맞추나요? 아님 시간차이가 조금 나도 상관없으니 그냥 엔티티별로 createdDate, updatedDate를 업데이트하나요? 그리고 새 강의 계획은 언제쯤 인지 알수 있을까요?

  • spring
  • JPA
  • spring-boot
  • java
보물섬 댓글 1 좋아요 0 조회수 549

선생님 optional<>관련 질문이 있습니다.

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

선생님 강의 시청도중 궁금증이 생겨서 질문남깁니다. 자바 8부터 객체 리턴시에 null이 리턴되어 참조되는걸 방지하고자 optional을 사용한다고 말씀하셨는데요 optional로 감싼 객체는 1회용으로 거기서 원래 객체를 꺼내면 메모리에 남은 optional객체는 gc가 수거해야할 쓰레기가 되는건가요? 그렇다면 무분별한 optional남용은 오버헤드를 초래할 수 있을 것 같은데요 메소드명에 OrNull을 추가해서 명시적으로 해당 메서드에서는 null이 리턴될 가능성이 있다고 알리고 사용하는 쪽에서 null값을 리턴받은경우에 대한 예외처리를 분기문등으로 진행하는게 낫지 않나요? 정확히 optional을 사용할때의 어떤 장점때문에 오버헤드의 가능성을 감수하고 사용하는 건가요?

  • java
  • optional
  • java
  • spring
  • MVC
  • spring-boot
spc_pok 댓글 1 좋아요 0 조회수 567

PSQLExeption 오류 나는데요 ?

미해결

스프링 시큐리티

처음 설치하면서 계정 생성하고 암호 입력하면 자동으로 db 생성 되지 않나요 ? 계정 ,비번 문제도 아닌거 같고, 폰트가 깨지는 거 보니 인코딩 문제일 수도 있겠는데 ...? 검색해도 안나오네요 ㅠ Postgres는 최신형입니다. -------------------------------------------------------- org.postgresql.util.PSQLException: &Auml;&iexcl;&cedil;&iacute;&Agrave;&ucirc;&iquest;&Agrave;&middot;&ugrave;: "springboot" &micro;&yen;&Agrave;&Igrave;&Aring;&Iacute;&ordm;&pound;&Agrave;&Igrave;&frac12;&ordm; &frac34;&oslash;&Agrave;&frac12; (pgjdbc: autodetected server-encoding to be ISO-8859-1, if the message is not readable, please check database logs and/or host, port, dbname, user, password, pg_hba.conf) at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2497) ~[postgresql-42.2.8.jar:42.2.8] at org.postgresql.core.v3.QueryExecutorImpl.readStartupMessages(QueryExecutorImpl.java:2618) ~[postgresql-42.2.8.jar:42.2.8] at org.postgresql.core.v3.QueryExecutorImpl.<init>(QueryExecutorImpl.java:135) ~[postgresql-42.2.8.jar:42.2.8] at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:250) ~[postgresql-42.2.8.jar:42.2.8] at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:49) ~[postgresql-42.2.8.jar:42.2.8] at org.postgresql.jdbc.PgConnection.<init>(PgConnection.java:195) ~[postgresql-42.2.8.jar:42.2.8] at org.postgresql.Driver.makeConnection(Driver.java:458) ~[postgresql-42.2.8.jar:42.2.8] at org.postgresql.Driver.connect(Driver.java:260) ~[postgresql-42.2.8.jar:42.2.8] at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:138) ~[HikariCP-3.4.1.jar:na] at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:353) ~[HikariCP-3.4.1.jar:na] at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:201) ~[HikariCP-3.4.1.jar:na] at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:473) ~[HikariCP-3.4.1.jar:na] at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:562) ~[HikariCP-3.4.1.jar:na] at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:115) ~[HikariCP-3.4.1.jar:na] at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:112) ~[HikariCP-3.4.1.jar:na]

  • java
  • Spring Security
  • spring-boot
컴맹 댓글 3 좋아요 1 조회수 4103

강의중에 실무에 대한 궁금중이 있어서 질문합니다.

해결됨

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

강의중에서 SimpleOrderDto 클래스 생성자에 인자로 entity를 받는데 중요하지 않은곳에서 중요한것을 받는건 상관 없다고 하셨는데..! 영한님도 실무에서 dto 생성자에 entity를 직접 받아서 사용하시나요??? 될수있으면 엔티티로 받지 말고 값을로 받아서 채우던가 , 다른 클래스(dto) 변환 해서 넘기는게 좋다는 이야기를 들은적이 있어서요 예를들어 public class CommonWrapper { @Getter public static class SelectMember { private Long id ; private String writer ; private String contents ; private String mention ; private SelectMember (Long id , String writer , String contents , String mention) { this . id = id ; this . writer = writer ; this . contents = contents ; this . mention = mention ; } public static SelectMember from (Member member) { return new SelectMember(member.getId() , member.getWriter() , member.getContents() , member.getMention()) ; } } 궁금해서 여쭈어봅니다!!

  • java
  • JPA
  • spring
  • spring-boot
jay 댓글 1 좋아요 1 조회수 401

dto entity 변환은 어느 곳이 적절할까요?

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

1) dto -> entity 2) entity -> dto 각각의 변환은 어디가 적절할까요? 1번 2번 둘 다 controller 혹은 service 에서 하게 되는데 사람마다 스타일이 각각 다른 것 같습니다 영한님이 프로젝트에서 사용하시는 방법이 궁금합니다 (그리고 그것이 개인적으로 선호하는 방법인지도 알고 싶습니다 선호하는 것과 실제 프로젝트에서 사용하기 모호한 부분이 있을 수도 있기에 추가로 질문 드립니다) 영한님이 사용하시는 방법에 대한 이유도 알 수 있었으면 합니다 감사합니다

  • spring
  • java
  • 웹앱
  • spring-boot
  • JPA
lect 댓글 1 좋아요 2 조회수 778

Scene 전환시 데이터 유지와 설계 질문

미해결

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진

안녕하세요 ㅎㅎ 강의를 들으며 토이프로젝트로 조그마한 게임을 하나 만들고 있습니다. 몇 가지 궁금한 점이 생겨 질문드립니다. Q1.1) 아래 사진은 루카노르 백작 이라는 게임입니다. 캐릭터가 위의 문을 열고 들어가면 빌런인 염소가 존재합니다. 문제는 이 방을 나갔다 새로 들어와도 염소의 자리는 그대로 방을 나갈 당시 위치에 있습니다. 게임을 해본 추억을 되짚어 보니 두 가지로 나뉘더군요 1) 방을 나갔다 다시 들어오면 몹이 초기 젠 자리로 가있는 경우 2) 방을 나갔다 들어와도 아래와 같이 몹이 그자리 그대로 있는경우 1)번의 경우 모든걸 초기화하고 새로 만들면 될 것 같은데 2)번의 경우 기존의 정보를 어떤 방식으로 관리하는지 궁금합니다. 만약 던전의 방도 Scene으로 관리한다면 본 강의의 예제에서는 Scene간의 전환시 Manager를 통해 clear하는데 어떤식으로 코드를 수정해야할지 여쭙고싶습니다. 횡설수설하지만 정리해서 말씀드리면.. Scene전환시 이전 Scene으로 돌아갈때 이전 Scene의 상태를 그대로 유지한상태로 돌아가는 방법은 무엇인가요? Q2) 또 한가지 의문은, 리니지나 디아블로의 경우 던전의 한 층 자체를 Scene으로 관리할 것 같은데 아래와 같이 던전 내에 여러개의 문이 있고, 문에 입장하면 장면이 전환되는 경우 던전 내의 방들은 Scene으로 관리하나요? 설계는 개발자 마음대로라지만 Rookiss님이 게임을 만드신다면 어떻게 설계하실지 궁금합니다.

  • C#
  • unity
댓글 3 좋아요 0 조회수 1883

질문 드립니다.

해결됨

실전! 스프링 데이터 JPA

안녕하세요 강사님 업무를 하다가.. 궁금한 부분이 있어서 질문을 남기게 되었습니다. 질문드립니다. 질문1 Repository에서 @Query 어노테이션을 사용해서 nativeQuery = true 옵션을 주고 Entity 객체로 값을 반환을 받는데 네이티브 쿼리에서 추가한 연산한값 또는 rownum 같은 값을 Entity 객체로 받을수 있을까요? 구글링을 해보니까 안된다고 하는것 같아서요 Entity 객체에 @Transient 애노테이션을 붙여서 필드를 생성해 놓았지만 해당 애노테이션은 엔티티를 만들때 컬럼을 생성하지 않는 역할이라서 역시 안될것 같았지만 역시나 안되네요 혹시 다른 방법이 있을까 해서 질문 남깁니다 질문2 Spring Data Slice를 사용해서 페이징을 구현하려고 하는대요 커서의 개념으로 조회를 하려고 합니다. 그래서 PageRequest.of(0,3)으로 고정 해 놓고 id 값을 기준으로 3개씩 조회를 하려고 하였는데 (id < 입력 값) order by 정렬 기준으로 id를 사용할수가 없는 경우에는 혹시 다른 방법이 있을까요? (순차적으로 id 값이 정렬되어 있지 않은 경우) 그래서 rownum을 사용해서 조회를 하였는데 Entity 객체로 rownum이 반환이 안되더라구요;; 읽어 주셔서 감사합니다^^ Projections 이건 지금 처음 보았는데 안되면 Projections 고려해 바야겠습니다^^ 감사합니다.

  • spring-boot
  • spring
  • java
  • JPA
류재준 댓글 4 좋아요 1 조회수 1211

InputManager의 작동 원리가 잘 이해되지 않습니다.

미해결

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진

InputManager의 작동 원리가 잘 이해되지 않습니다. 그래서 디버깅으로 한 줄 한 줄 따라가 봤는데, 여전히 궁금한 점들이 있습니다. 1. 왜 InputManager _input = new InputManager();를 읽은 뒤 Init()를 다시 실행해서 DonDestroyOnLoad(go);를 읽는 건가요? Init();은 Start에 들어 있으니 첫 실행 때 한 번 호출되고 끝이어야 하는 게 아닌가요? 2. Managers의 업데이트에서 OnUpdate를 계속 호출해 줘서 키 입력을 감지하는 건 알겠는데 키 입력이 들어온 뒤 KeyAction.Invoke();가 어떤 역할을 하는지 모르겠습니다. 혹시 InputManager에서 if( KeyAction != null)일 경우 바로 OnKeyboard()를 호출하는 게 문법적으로 불가능하기 때문인가요?

  • C#
  • unity
강아지호빵찐빵 댓글 1 좋아요 0 조회수 389

클라이언트에서 보낸 데이터가 다 도착하지 않았을 때...? 처리하는 부분이 있는건가요?

미해결

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

클라이언트에서 보낸 데이터가 다 도착하지 않았을 때 다음 데이터가 올 때까지 기다린 후 처리한다고 말씀하셨는데, 이 부분이 코드 어디에 구현되어있는건가요...? 위에 있는 코드를 나름대로 해석해보니 1. OnWrite()는 _recvArgs.Buffer에 들어있는 데이터만큼 _recvBuffer의 _writePos를 증가시킨다. 2. OnRecv()한 데이터(_recvArgs.Buffer에 들어있는 데이터)의 크기를 processLen에 담는다. 3. processLen의 크기만큼 _readPos를 증가시킨다. 라고 이해했는데, 클라이언트에서 보낸 데이터가 완전한지 불완전한지 딱히 판단하는 부분은 없어보이고 그냥, [1.데이터가 들어온만큼 _writePos를 증가시킨다 2. 처리한다 3. 처리한만큼 _readPos를 증가시킨다]를 실행시킨거같아서요!

  • unity
  • network
  • C#
박준영 댓글 1 좋아요 0 조회수 366

ConcurrentSessionControlAuthenticationStrategy 질문입니다!

미해결

스프링 시큐리티

현재 Ajax 방식 로그인을 위해 해당 강의에서 나온 방식으로 AbstractAuthenticationProcessingFilter를 상속받아 Filter를 커스텀하여 로그인 기능이 구현되어있습니다. 이후 동시세션 제어를 위해 securityConfig에서 아래 코드를 적용하였지만 http .sessionManagement() .maximumSessions(1); AuthenticationProcessingFilter를 커스텀하여 ConcurrentSessionControlAuthenticationStrategy이 적용되지 않는것 같은데 적용하는 방법을 알 수 있을까요?!

  • java
  • Spring Security
  • spring-boot
YoungJin Hwang 댓글 2 좋아요 1 조회수 926

getter setter 질문 드립니다.

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

static class Hello { private String name2 ; public String getName () { return name2 ; } public void setName ( String name2) { this . name2 = name2; } } 이렇게 변수 이름을 name2로 바꿔줘도 json으로 바뀌면 키 값이 name인데 이유가 뭔가요? 그런데 get, set 메서드 이름에도 2(getName2, setName2)를 붙여주면 키 값이 name2로 잘 나옵니다 이렇게 동작하는 이유가 뭔가요?

  • java
  • spring
  • spring-boot
  • MVC
bs k 댓글 2 좋아요 2 조회수 352

em.flush() 궁금한 게 있습니다.

해결됨

실전! 스프링 데이터 JPA

12분 쯤 벌크연산에서 flush()를 날린 뒤에 벌크연산을 수행하니 db에는 41살, 영속성 컨텍스트에는 40살인 채로 남고 그 상태에서 명시적으로 em.flush()를 날리면 db에 40살이 찍히리라 예상 했는데... flush()할 때 단순히 DB와 동기화하는 게 아니라 변경 감지를 통해 쓰기 지연된 부분만 내보내는 것으로 이해했는데 비슷한가요?

  • java
  • spring-boot
  • spring
  • JPA
정현도 댓글 1 좋아요 2 조회수 376

강사님 QueryDSL이 안됩니다..

미해결

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

안녕하세요. 강사님 https://www.inflearn.com/questions/149157 여기 글이랑 같은 오류인데 강사님이 알려주신 링크 들어가니까 권한이 없다고 나오는데.. 방법을 모르겠습니다. ㅜ

  • JPA
  • java
  • spring
  • spring-boot
조재연 댓글 3 좋아요 0 조회수 6259

클라이언트의 소스 자체를 해커가 바꿀경우..

미해결

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)

안녕하세요, 스승님.. 질문이 있습니다. Speed를 서버를 통해 받아오더라도., updateMoving()의 소스 자체를 해킹 당하면 캐릭터 이동속도 핵은 생기지 않나 궁금합니다. 예를 들어 스르륵 이동하는 코드의 Speed를 서버에서 받아오더라도, transform.position += moveDir.normalized * Speed * Time.smoothDeltaTime ; => transform.position += moveDir.normalized * Speed * Time.smoothDeltaTime *2; 이렇게 수정한다면, Destination 에 더빨리 도착하여 더 빨리 이동하겠다는 패킷을 빨리 보낼 수 있지 않나 싶어서요.. 이 경우 서버에서도 스르륵 부분을 구현하여 대략 어느정도 도착할 시간을 비교해서 구별하는 부분을 추가하여 대처를 해야하는 것이 맞는 것인지 궁금합니다.. 늦은 시간 질문드려 죄송합니다! 늘 상세히 답변 주시어 정말 감사드립니다.

  • C#
  • unity
댕진형 댓글 1 좋아요 0 조회수 267

매핑 단어 뜻

미해결

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진

강의중간중간 매핑이라는 단어가 나오는데 코드를 보고 구글링을 해도 정확한의미를 잘 모르겟어서 질문드립니다 ㅠ

  • unity
  • C#
gugangmo59 댓글 2 좋아요 0 조회수 940

HelloSpringApplication 메인 메서드 동작시킬때

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

HelloSpringApplication 메인 메서드 동작시킬때, application이 실행되면서 서버가 도는 것 같습니다. 궁금한 점이 이때, 작성해둔 모든 컨트롤러, 서비스, 레파지토리, 도메인 등이 같이 가동되는 것인지 궁금합니다. 그리고 컨트롤러가 여러개 있으면 @Controller로 기재된 모든 컨트롤러가 MemberService, MemberRepository 또는 더 나아가 모든 서비스와 레파지토리와 연결되는건가요? 왜냐하면 10분에 나오는 영상에 helloController와 연결된 그림이 있습니다. MemberController와 연결 시켜주는 과정인줄 알았는데 helloController가 그림에 있길래 모든 Controller가 @Service라고 기재된 것과 연결된 것인지 궁금합니다. 사실 더 나아가 service와 repository도 전부 서로서로 연결되는 구조인지 궁금합니다..

  • spring-boot
  • spring
  • MVC
  • java
댓글 1 좋아요 0 조회수 180

에러가 발생합니다..

미해결

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

dummyClient측에서 sendAsync를 하려고 할 때.. 에러가 발생합니다. 에러 내용 Unhandled exception. System.ObjectDisposedException: Cannot access a disposed object. Object name: 'System.Net.Sockets.Socket'. at System.Net.Sockets.Socket.SendAsync(SocketAsyncEventArgs e, CancellationToken cancellationToken) at System.Net.Sockets.Socket.SendAsync(SocketAsyncEventArgs e) at ServerCore.Session.RegisterSend() in /Users/mini/Desktop/projects/Game/MMO_Server_Tutorial/ServerCore/Session.cs:line 71 at ServerCore.Session.Send(ArraySegment`1 sendBuff) in /Users/mini/Desktop/projects/Game/MMO_Server_Tutorial/ServerCore/Session.cs:line 57 at DummyClient.GameSession.OnConnected(EndPoint endPoint) in /Users/mini/Desktop/projects/Game/MMO_Server_Tutorial/DummyClient/Program.cs:line 20 at ServerCore.Connector.OnConnectCompleted(Object sender, SocketAsyncEventArgs args) in /Users/mini/Desktop/projects/Game/MMO_Server_Tutorial/ServerCore/Connector.cs:line 42 그리고 찍히는 로그가.. 좀 이상한 것 같은데요.. [From Server]: 메시지 OnDisconnected: [fe80::1%1]:7777 OnConnected: [fe80::1%1]:7777 이러고 나서 바로 위 에러가 나버립니다. 도저히 원인을 찾을 수 없을 것 같아서 질문 남겨드립니다..

  • C#
  • unity
  • network
leomessi 댓글 2 좋아요 0 조회수 4758

mappedBy와 cascade를 함께 썼을 때

해결됨

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

mappedBy로 설정된 컬렉션은 읽기만 가능한 줄 알고 있어서 cascade가 적용이 안되는 게 아닌가..? 싶었는데 컬렉션에 엔티티를 추가할 경우 엔티티도 영속화 해주지만 그 엔티티의 FK 값은 반영이 안되는 것 같은데 제가 제대로 이해한 게 맞을까요?

  • java
  • 웹앱
  • JPA
  • spring
  • spring-boot
정현도 댓글 1 좋아요 0 조회수 251

컬렉션에 대한 fetch join은 1개만 사용해야 한다에 대한 질문

해결됨

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

안녕하세요 영한님. 간단한 질문을 드리고 싶어서 글 남기게 되었습니다. 강의 마지막에 " 컬렉션(일대다 관계)에 대한 fetch join은 1개만 사용 해야 한다. 2개 이상 붙이면 일대 다대 다 형태가 되어버리기 때문에... " 라고 설명해주셨습니다. 여기서 2개 이상 사용하는 케이스는 아래 두 케이스를 모두 포함하는 것인지 궁금합니다 :) - Order 클래스 내부에 일대다 관계에 대한 필드가 2개인 경우 - Order 클래스 내부에 일대다 관계에 대한 필드가 1개고, 그 필드의 객체 내부에 일대다 관계에 있는 필드가 존재하는 경우 문득 생긴 고민이라 적절한 예시가 생각나지 않네요ㅠㅠ 감사합니다!

  • java
  • spring-boot
  • spring
  • JPA
terry__k 댓글 1 좋아요 5 조회수 388

H2 SQL 접속 불가 문제입니다.

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

안녕하세요... 다름이 아니라 DB SQL 문제 때문에 질문드립니다 해당 오류는 H2 DataBase의 접근 오류 문제인거 같습니다. 바로 앞전에 엔티티 매핑에서 부터 뭔가 이상해서 DB를 초기화하고 다시 돌려보니 아예 DB에 데이터 쓰기 자체가 안되는거 같습니다. 참고로 H2 SQL, MY SQL 방언 문제 할 수 있는거 죄다 다해봤는데 도저히 먹히지 않습니다. 다른 방법들은 아예 Spring을 사용해야 되서 아예 xml 파일에서 작동 되지가 않습니다...

  • JPA
  • java
kdh961113 댓글 6 좋아요 0 조회수 3330

인기 태그

인프런 TOP Writers

주간 인기글