묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결비전공자도 이해할 수 있는 DB 설계 입문/실전
실제 개발에 들어가거나 서비스 운영 중에도 DB설계를 바꾸나요?
선생님, 안녕하세요!이번에 DB설계 강의를 완강하였고, 좋은 강의 덕분에 DB 설계에 대한 자신감을 갖게 되었습니다.강의 중간에 DB설계를 처음부터 너무 완벽하게 하려고 할 필요 없고, 혹시 나중에 생각하지 못한 부분이 있으면 수정하거나 추가로 반영하면 된다고 하셨는데요.팀원들과 DB 설계 이후에 실제 개발을 시작하거나 또는 서비스를 운영하던 도중에 DB설계에 문제가 있다는 것을 알게 되면 추후에 수정해도 되는지 궁금합니다.예를들어, DB 처음에 설계할 당시에는 정규화를 철저하게 지켜서 설계했는데, 나중에 배포해서 성능테스트 해보니까 역정규화 이외에는 성능을 개선시킬 수 있는 방법이 없는 경우라면, 이미 서비스 운영 중에 DB설계를 바꿔야할 것 같은데, 현업에서 이런 경우들이 종종 있는지 여쭤봅니다.예전에 팀프로젝트 할때 다른 팀원분께서 ERD는 최대한 처음에 짜둔 방향에서 개발을 시작하면 수정하지 않는 것이 바람직하다고 하셔서 DB 설계를 수정하지 못한 경험이 있는데, 현업에서는 보통 어떻게 하시는지 궁금합니다.
-
미해결서버개발자 과제전형 완벽가이드 - 1편
.
.
-
미해결개발자라면 알아야 할 redis 기본
수업 자료는 어디 있을까요?
수업 자료 전달 요청 드립니다.
-
해결됨절대강좌! 유니티6 - UGS를 활용한 백엔드 시스템 구축
[강의 요청] 간단한 2D RPG + UGS 활용 강의를 요청드려도 괜찮을까요?
목표가 '카피바라 Go' 정도의 2D RPG 게임을 만드는 건데, 혹시 괜찮으시다면 UGS를 활용한 2D RPG 게임 강의를 부탁드려도 될까요?유니티 관련 강의를 여러 개 들어봤지만 대부분 아쉬움이 컸던 반면, 강사님의 강의 스타일과 내용이 매우 만족스러워 이렇게 요청드리게 되었습니다.강의 내용으로 전투 시스템, 인벤토리 시스템, 퀘스트 시스템과 함께 UGS를 활용한 능력치 테이블 로드, 유저 데이터 저장, CCD 패치 시스템 등 실제 게임 개발에 적용할 수 있는 내용들을 포함해 주시면 큰 도움이 될 것 같습니다.꼭 UGS가 아니더라도 다른 서버를 활용하는 방식도 괜찮습니다.
-
해결됨절대강좌! 유니티6 - UGS를 활용한 백엔드 시스템 구축
구글 연동
강의 덕에 쉽게 ugs 사용할 수 있게 됐습니다 감사합니다. 강의 보고 난 후 구글, 구글게임즈 연동도 시도해보고 있는데 잘 안되네요. 혹시 이와 관련된 강의 계획은 예정에 없으실까요?
-
미해결서버개발자 과제전형 완벽가이드 - 1편
서비스에 @Transactional 애노테이션을 사용하시지 않는 이유가 궁금합니다
안녕하세요 궁금한게 있어 질문 남깁니다. 보통 데이터베이스 사용시 서비스 단에 @Transactional을 관습적으로 붙여왔는데, 서비스 로직을 작성하실때 @Transactional 애노테이션을 사용하시지 않은 건 비즈니스 로직이 너무 간단하기 때문에(트랜잭션 논리 단위로 묶을 필요없을 정도로) 생략하신거라고 이해하면 될까요? 답변 감사합니다
-
해결됨절대강좌! 유니티6 - UGS를 활용한 백엔드 시스템 구축
AddListener와 async 사용
안녕하세요.버튼 AddListener 사용할 때 질문이 있습니다. loginButton.onClick.AddListener(async () => await Login());이렇게 사용하셨는데요. AddListener 함수가 콜백을 await 해주지 않기때문에, 이렇게 사용하는게 낫지 않나요?loginButton.onClick.AddListener(Login); private async void Login() { try { await AuthenticationService.Instance.SignInAnonymouslyAsync(); string playerName = await AuthenticationService.Instance.GetPlayerNameAsync(); playerNameIF.text = playerName.Split('#')[0]; } catch (Exception e) { print(e.Message); } }
-
해결됨서버개발자 과제전형 완벽가이드 - 1편
NaverClientTest 질문있습니다.
ApplicationContext 로드 실패gpt에서 NaverClientTest파일에서 파일 위치 명확하게 하라고 해서 @EnableFeignClients(basePackages = "com.livray.feign") 이부분을 추가했더니 아래와 같은 에러가 나왔습니다.Caused by: org.springframework.beans.factory.support.BeanDefinitionOverrideException: Invalid bean definition with name 'default.NaverClientTest.FeignClientSpecification' defined in null: Cannot register bean definition [...] since there is already [...] bound.그래서 @EnableFeignClients(basePackages = "com.livray.feign") 이부분을 지웠더니 다시 ApplicationContext 로드 실패에러가 나옵니다. 코드는 강의 하단에 있는 부분을 붙여놨습니다. 환경변수는 제대로 설정해놓았는데 공유해야해서 dummy로 설정해 놓았습니다.아래는 코드링크입니다.
-
미해결비전공자도 이해할 수 있는 DB 설계 입문/실전
관리자 테이블
안녕하세요.관리자 테이블에 이메일이 유저의 이메일과 다르지 않다고 생각이 들어서 합치는 게 낫다고 생각이 들었습니다. 처음에는 유저에 그냥 합쳐서 새로운 컬럼 role로 관리하려고 했는데, 중복이 있어서관리자 테이블엔, role 컬럼을 넣어서 user, admin 2개로 추가해서 이제 유저 테이블에서 FK로 사용하려고 하는데 이 방법은 어떨까요? (강의 너무 잘 듣고 있습니다, 제 멘토이십니다ㅎㅎ)
-
해결됨비전공자도 이해할 수 있는 DB 설계 입문/실전
외래 키 지정은 필수가 아닌 건가요?
안녕하세요. 강의 끝까지 다 들었는데 갑자기 외래 키 부분에서 궁금한 점이 생겼습니다. DB 설계할 때 테이블끼리 관계를 맺기 위해 외래 키를 지정하잖아요?그런데 외래 키로 지정을 안 하는 경우도 있나요? 조인 등에 사용될 속성은 있지만, 외래 키 지정은 안 해서 외래 키 제약 조건이 없도록 하는 경우도 있나요?
-
미해결비전공자도 이해할 수 있는 DB 설계 입문/실전
게시판 닉네임, 아이디 관련질문
안녕하세요. 수업 듣다가 궁금한 사항이 있어 질문 드립니다!중요하지 않을 수도 있는데, 사용자 테이블에서 닉네임이랑 아이디를 따로 해야 하지 않나요?UI 이미지보면 jscode123 이랑 마이페이지에 petya는 다른 것처럼 보이는데 사용자 테이블에 닉네임으로 해도 괜찮을까요?
-
해결됨절대강좌! 유니티6 - UGS를 활용한 백엔드 시스템 구축
Run시 에러가 발생합니다.
const { DataApi } = require("@unity-Services/cloud-save-1.4")module.exports = async ({ params, context, logger }) => { const { projectId } = context; const serverInfo = { apiEndpoint: "https://mygame.server.com", connectId: 123456 } const cloudSaveApi = new DataApi(context); try{ await cloudSaveApi.setCustomItem(projectId, "SeverConfig", { key:"serverInfo", value: serverInfo }); logger.info("Save ServerInfo Success"); return { success: true, message: "Save Success ServerInfo"}; }catch(err){ logger.info("Error", {"error:", err.message}); return {success : false, message : "Failed Save ServerInfo"}; }};Compilation Error------------------------------SyntaxError: Unexpected token ','GameData.js:22:34
-
미해결비전공자도 이해할 수 있는 DB 설계 입문/실전
개발자 및 DB 설계 관련 질문
안녕하세요. 덕분에 DB에 대해 알아가고 있는 입문자입니다.강의와 상관없는 질문일 수도 있지만 궁금해서 여쭤봅니다.개발자 및 DB 설계할 때 엑셀을 많이 다루나요?아니면 강의 자료를 쉽게 설명하기 위해 엑셀을 하시는건가요?
-
해결됨절대강좌! 유니티6 - UGS를 활용한 백엔드 시스템 구축
[질문] ID 와 Password 방식으로 가입하는 방식 관련 질문이 있습니다.
안녕하세요.ID 와 Password 방식 관련 강의를 보고 있습니다. 강의 영상에서 보면가입을 zack 이란 아이디로 가입을 하였는데,대쉬보드에서 보니 Unity 가 자체적으로 생성한 PlayerID 인 : UmpicBxVKu~~~~ 로만 등록되어 있어서요. 그럼 사용자가 자신의 아이디를 밝히면서 관련해서 무언가를 요구할때 서로 의사소통하기가 어렵지 않나요?사용자가 명시적으로 입력한 id 값으로 찾아볼 수 있는 곳이 있을까요? (현재 강의만 보고 있어서, 직접 대쉬보드를 열어보지 않아서 드리는 질문일 수도 있겠네요 ^^; )
-
미해결비전공자도 이해할 수 있는 DB 설계 입문/실전
중복데이터 질문 있습니다.
id 상품명 카테고리1 잘 지워지는락스 생활 용품2 락스 생활용품3 락스 생활용품 여기서 하나의 가게에서 상품명은 달라도 되는건 이해했는데카테고리도 가게마다 다를 수 있지 않나요?
-
해결됨서버개발자 과제전형 완벽가이드 - 1편
멀티모듈 구성 질문입니다.
학습관련 질문을 남겨주세요! 상세히 작성주시면 더 좋아요 🙂아래 질문이랑 차이가 있습니다.멀티모듈 extenal에서 kakao-client new 모듈을 만들때 모듈은 생성이 안되고 iml파일과 src폴더만 생성입니다. 이럴 때는 어떻게 해야하나요? 그리고 그림처럼 모듈이 없는데 이미 프로젝트내에서 모듈이 존재한다고 합니다.시도방법:캐시삭제clean 후 build프로젝트 종료후 재시작Import Module 추가settings.gradle에서 아래 글자 추가 하고 멀티모듈 생성했는데 iml 파일 만들어집니다.아래글자 주석 처리했는데도 똑같은 현상 나옵니다.include 'external:kakao-client'파일은 메일로 보냈는데 확인 부탁드립니다.
-
해결됨서버개발자 과제전형 완벽가이드 - 1편
멀티모듈 구성 강의에 대해 질문이 있습니다.
멀티모듈 구성 강의에 대해 질문잉 이씁니다.해당 강의에서 모듈 만들 때 아래처럼 파일 디렉토리가 되어있는데요.search-api├── src │├── main ││ ├── java ││ ├── resources │├── test ├── build.gradle 제가 만들때는 아래 처럼 됩니다.저는 왜 선생님 처럼 java로 모듈을 만들면 src 폴더에 아래 파일이 안생기고 lib 폴더만 생기는 이유가 뭘까요?│ ├── java ││ ├── resources │├── test ├── build.gradle저는 모듈 구성할 때 아래와 같은 창이 나오는데요. 아래에서 grovy를 체크(아래 사진에서 파란색바탕부분임. 아래사진은 안되어있지만 체크함.)했는데 체크 안하고 진행해야 하나요? 참고로 선생님 강의 44초에는 grovy 선택하는 구간이 나와서 저도 체크했어요.제화면 선생님 화면참고로 1. IDE에서 자동 생성 옵션 활성화 https://tychejin.tistory.com/340 이링크에 나와있는데로 세팅함.build.gradle을 아래처럼 세팅했습니다.위 방법 실행 후 ./gradlew clean build 이 명령어 실행프로젝트를 새로 열기 plugins { id 'java' id 'org.springframework.boot' version '3.3.9' id 'io.spring.dependency-management' version '1.1.7' } group = 'com.example' version = '0.0.1-SNAPSHOT' java { toolchain { languageVersion = JavaLanguageVersion.of(17) } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' testImplementation 'org.springframework.boot:spring-boot-starter-test' testRuntimeOnly 'org.junit.platform:junit-platform-launcher' } tasks.named('test') { useJUnitPlatform() } sourceSets { main { java { srcDirs = ['src/main/java'] } resources { srcDirs = ['src/main/resources'] } } test { java { srcDirs = ['src/test/java'] } resources { srcDirs = ['src/test/resources'] } } }캐시 삭제 후 재 진행File → Invalidate Caches / Restart 클릭"Invalidate and Restart" 선택IntelliJ가 다시 시작되면 Gradle 탭에서 "Reload Gradle Project" 버튼(↻ 아이콘) 클릭참고로 인텔리제이 2021 얼티미디엇 버전입니다. 위에 파일 아래 메일로 보냈습니다. 혹시 문제점이 있는지 봐주실 수 있으신가요?jaytech108@gmail.com
-
미해결비전공자도 이해할 수 있는 DB 설계 입문/실전
db 컬럼에 JSON 박아도 되나요?
학생들이 문제를 푸는 시스템을 만들고 있는데요.문제 갯수도 시험마다 다르고, 각 문제마다 학생들이 저장하는 답변도 달라지니까 이게 관리가 어렵더라고요.정규화로는 좀 어려운거 같은데.. 혹시 이런경우에 JSON 넣어도 되나요?그리고 찾아보니까 Postgresql에서 JSON을 지원한다고 하는데 이거 써서 개발하는게 맞는 판단인지 궁금합니다.혼자서 판단할수 있음 좋겠지만 이제 막 개발배워서 해보는거라 이게 맞는지 모르겠어요.
-
미해결비전공자도 이해할 수 있는 DB 설계 입문/실전
erd 진짜 안그려도 되나요
안그리면 혹시 관계같은거 설정하고 나중에 참고할때 문제가 될 수 있나요? 제 기준으론 orm에서 그냥 1:N N:N 1:1 설정해놓으면 이것만 보고도 별 문제가 없긴 한데요. (엔티티 6개 수준이에요) 엔티티가 10개가 넘어가고 관계 설정이 여러개가 진행되도 ERD 없이 진행해도 괜찮나요?
-
미해결비전공자도 이해할 수 있는 DB 설계 입문/실전
그냥 하나씩 만들어나가면서 DB 설계를 그때그때 하는건 틀린건가요?
지금 제가 개인적으로 혼자 만들고 있는 프로젝트가 있습니다.그냥 아이디어만 갖고 시작한건데요. 아래와 같은 순서로 만들고 있습니다. (1) GPT한테 내가 원하는 기능을 설명한다.(2) GPT한테 View 먼저 그려달라고 한다.(3) View는 데이터 바인딩 안하고 그냥 하드코딩한다.(4) View 보고 GPT랑 토의하면서 기능을 기획한다.(5) 완성된 View를 보고 DB 모델링 한다. (보통 엔티티 하나나 두개정도가 됩니다)(6) 백엔드를 붙인다. 이렇게 해서 하나씩 만들어나가고 있는데요. 이거 잘못된 방법이에요? 그냥 그때그때 DB 모델링에 필요한 컬럼이 생긴다고 하면 넣어주고 빼고 하면서 만들고있거든요.