이야기를 나눠요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
TextRPG에서 싸우기 전에 몬스터 정보 확인을 하고 싶을 때
오늘도 객체지향 TextRPG를 만들면서 연습하던 도중에, 똑같이만 만들면 지루해서 다른 기능들을 추가해보는 중이였습니다. 그중, Monster 클래스에 만들어놨던 몬스터의 정보를 가져오는 함수인 GetMonsterType을 이용해보고 싶어서 Game 의 ProcessField의 선택지에 하나를 더해서 싸우기 전에 몬스터의 정보를 확인할 수 있게 만들어 봤습니다. 그냥 ProcessField선택지를 추가하면, 프로그램에서 while문으로 Process함수를 계속해서 실행하고 있기 때문에, CreateRandomMonster()함수까지 다시 실행되어 선택지를 다시 선택하는게 아니라, 다른 몬스터를 생성해 버리는 문제가 있습니다. 그 문제를 해결하기 위해서, 위와같이 몬스터를 만드는 부분과, 선택지 부분을 다른 함수로 나누었습니다. 또, 정보를 확인하고 난 뒤에, 다시 Fight()함수가 실행될 수 있도록 하기위해서 GameMode에 Fight 를 추가하여, 메인 함수의 while문에서 호출되는 Process함수 내의 mode를 GameMode.Fight인 상태로 계속 반복되게 만들어, ProcessFight()가 계속해서 실행 될 수 있도록 만들었습니다. 결과는 이렇게 나왔습니다. 정보를 확인하고 도망가거나, 싸우거나 , 다시 몬스터 정보를 확인할 수 있습니다. 6번째 객체지향TextRPG연습인데, 이게 진짜 좋은 연습방법인것 같습니다. 코드흐름이나, 제가 눈치채지 못하고 넘어가던 부분들이 하나씩 보여서 개선해가는 느낌이 아주 기분이 좋습니다.
-
해외취업 ASP.NET Core 웹개발 기본 강좌
VS mac, .Net Core 3.1, PostgreSQL
- 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 자바개발자인데 5월부터 시작하는 .Net Core 프로젝트때문에 공부좀 할려고 강의를 듣게되었습니다. 하지만 .Net Core는 처음이고 .Net Core에대한 지식조차 하나도 없는데... DB관련에서 어려움이 생기더군요.혹시나 같은 어려움을 겪으시는 분이 있으시다면 참조하세요. ●윈도우 사용자분들은 섹션 4. 엔티티 프레임워크 코어의 DbContext 강의에서 아래 명령어 실행후 하시고① ...MyApp> dotnet tool install --global dotnet-ef② ..MyApp> dotnet add package Microsoft.EntityFrameworkCore.Design③ ..MyApp> dotnet ef <- 이젠 강의와 같은 정보가 출력된 것을 볼 수가 있습니다. 아래 MyAppContext.cs 내용이 있으니 참조하세요. MyAppContext설정하나가 추가됨 섹션 6. ASP.NET Core Identity 의 환경설정에서 DbContext에서 IdentityDbContext<ApplicationUser>로 변경하면 IdentityDbContext가 임포드할 수가 없다. 프로젝트폴더(MyApp) 우클릭 > [프로젝트 파일 편집] 클릭 MyApp.proj:다른건 디폴트로 건들리지 말아 주시고 PostgreSQL 라이브러리만 추가 <ItemGroup> ⓪<!-- dotnet add package Microsoft.EntityFrameworkCore.Design 인스톨후 자동추가됨 --> ⓪<!-- http://www.npgsql.org/efcore/index.html --> ⓪<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="5.0.5"> ⓪⓪<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> ⓪<PrivateAssets>all</PrivateAssets> ⓪</PackageReference><!-- 추가 -->④<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="3.0.0" /></ItemGroup>① ~ ④까지만 하시면 .Net Core 3.1로 하셔도 문제없으리라 봅니다. ● 환경 맥 OS 카탈리나 .Net Core 3.1 현재 3.1만 다운로드? 2.0은 어디있는 것인지 모르겠슴. .Net 5.0Visual Studio macDockerPostgreSQL 11.5 ● wwwroot는 직접생성 ● Controllers 폴더에 HomeController.cs 생성하기. 추가 -> 새 파일 -> ASP .Net Core -> 컨트롤러 클래스 -> 파일명 : HomeController ● Model 작성 추가 -> 새 파일 -> General -> 빈 클래스 -> 파일명 : Student or 추가 -> 새 클래스 -> General -> 빈 클래스 -> 파일명 : Student ● Razor 뷰 파일 생성.(Index.cshtml) 추가 -> 새 파일 -> ASP .Net Core -> Razor 뷰[cshtml] -> 파일명 : Index(Index -> Student ● Startup.cs : MVC 패턴에 매핑을위한 세팅 /* .Net Core 2.1 app.UseMvc(routes => { ⓪routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); }); */ // ASP.NET Core 3.1 app.UseEndpoints(endpoints => { ⓪endpoints.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}"); }); % dotnet ef <- EF Core 3.0부터 dotnet ef 컨맨드가 .NET SDK에 포함되어 있지 않다합니다. ● 터미널에서 열기 1.[프로젝트(MyApp)] 우클릭 > [도구] > [Open in Terminai Window] 2. 또는 [프로젝트(MyApp)] 우클릭 > [도구] > [터미널에서 열기] ● % dotnet ef <- 없데요. Could not execute because the specified command or file was not found. Possible reasons for this include: *You misspelled a built -in dotnet command. *You intended to execute a.NET program, but dotnet - ef does not exist. *You intended to run a global tool, but a dotnet - prefixed executable with this name could not be found on the PATH. 1이나 2의 [터미널에서 열기]해서 아래와 같이 인스톨 또는 업데이트해준다. 처음이면 인스톨. ● % dotnet tool install --global dotnet-ef 없으면 인스톨 % dotnet tool update --global dotnet-ef 버젼이 낮으면 업데이트(3.0.0이상으로.) ● % dotnet add package Microsoft.EntityFrameworkCore.Design <- 이것도 설치해야함. ● % dotnet ef <- 이젠 강의와 같은 정보가 출력된 것을 볼 수가 있습니다. ● view > sql server object explorer <- visual studio mac 에는 설치가 안되는 듯. Docker에 리눅스 이미지가 있다하는데, 저는 이 번 프로젝트가 Oracle에서 PostgreSQL로 마이그레이션이라 PostgreSQL로. PostgreSQL은 Docker에 설치하셔도 되고, 직접 로컬에 설치하셔도 됩나다. ● Docker를 설치하고 MyApp/docker-compose.yml 생성 ● appsetting(마이그레이션을 위해 appsetting생성) 추가 -> 새 파일 -> ASP .Net Core -> 앱 설정 파일(App Settings File) > 파일명 : appsettings 디폴트 Docker의 DB실행 MyApp 디렉토리로 이동. VS mac 터미널로 여시길. ● % docker-compose up -d -d는 백그라운드로 실행(도커의 PostgreSQL 시작) ● % docker-compose down 백그라운드 종료(PostgreSQL 종료). 도커 어플리케이션에서 종료해도 됨. 여기까지 진행하시면 강의 따라가실 수 있으십니다. 현재 섹션 5. Repository 패턴까지는 문제없네요. ### 생성된 파일 첨부 ● MyApp/appsettings.json <- 생성 추가 -> 새 파일 -> ASP .Net Core -> 앱 설정 파일(App Settings File) > 파일명 : appsettings 디폴트 { ⓪"Logging": {⓪⓪"LogLevel": {⓪⓪⓪"Default": "Warning"⓪⓪} ⓪}, ⓪"AllowedHosts": "*", <- 콤마부터 추가 ⓪"ConnectionStrings": {⓪⓪"MyAppContext": "Host=localhost;Database=MyApp;Port=15432;Username=cstest;Password=cstest"⓪} } ● MyApp/docker-compose.yml <- 생성 version: '3' volumes: ⓪postgres_data: ⓪⓪driver: 'local' services: ⓪postgres: ⓪⓪build: ⓪⓪⓪context: ./postgres ⓪⓪⓪dockerfile: Dockerfile⓪⓪container_name: "postgres1152" # Docker 컨테이너명⓪⓪environment: ⓪⓪⓪POSTGRES_PASSWORD: postgres # 수퍼유저 패스워드 ⓪⓪⓪POSTGRES_USER: cstest # 추가할 DB유저ID ⓪⓪⓪POSTGRES_PASSWORD: cstest # DB유저패스 ⓪⓪⓪POSTGRES_DB: MyApp # DB명 ⓪⓪⓪TZ: "Asia/Tokyo" ⓪⓪ports: - 15432:5432 # Docker:Docker내부의 PostgreSQL port ⓪⓪volumes: ⓪⓪⓪- postgres_data:/var/lib/postgresql/data ⓪⓪⓪- ./postgres/sql:/docker-entrypoint-initdb.d ● MyApp/postgres/Dockerfile <- 생성FROM postgres:11.5-alpine <- 버젼은 원하는 버젼으로. ● MyApp/Startup.cspublic void ConfigureServices(IServiceCollection services) {services.AddDbContext<MyAppContext>(options => {⓪// PostgreSQL⓪options.UseNpgsql(_config.GetConnectionString("MyAppContext")); }); ● 프로젝트폴더(MyApp) 우클릭 > [프로젝트 파일 편집] 클릭 MyApp.proj:다른건 디폴트로 건들리지 말아 주시고 PostgreSQL 라이브러리만 추가 <ItemGroup> ⓪<!-- dotnet add package Microsoft.EntityFrameworkCore.Design 인스톨후 자동추가됨 --> ⓪<!-- http://www.npgsql.org/efcore/index.html --> ⓪<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="5.0.5"> ⓪⓪<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> ⓪<PrivateAssets>all</PrivateAssets> ⓪</PackageReference>⓪<!-- PostgreSQL 라이브러리 추가입력 --> ⓪<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="5.0.5.1" /> </ItemGroup> ● MyAppContext.cs생성자의 매개변수 DbContextOptions에 MyAppContext추가public class MyAppContext : DbContext { ⓪public MyAppContext(DbContextOptions<MyAppContext > options) : base(options){} ⓪public DbSet<Student> Students { get; set; } ⓪public DbSet<Teacher> Teachers { get; set; }} 추가기입 섹션 6. ASP.NET Core Identity 의 환경설정에서 DbContext에서 IdentityDbContext<ApplicationUser>로 변경하면 IdentityDbContext가 임포드할 수가 없네요.● 프로젝트폴더(MyApp) 우클릭 > [프로젝트 파일 편집] 클릭 MyApp.proj:다른건 디폴트로 건들리지 말아 주시고 Identity 라이브러리만 추가 <ItemGroup> ⓪<!-- dotnet add package Microsoft.EntityFrameworkCore.Design 인스톨후 자동추가됨 --> ⓪<!-- http://www.npgsql.org/efcore/index.html --> ⓪<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="5.0.5"> ⓪⓪<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> ⓪<PrivateAssets>all</PrivateAssets> ⓪</PackageReference>⓪<!-- PostgreSQL 라이브러리 추가입력 --> ⓪<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="5.0.5.1" /> <!-- 추가 --><PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="3.0.0" /></ItemGroup>
-
[리뉴얼] React로 NodeBird SNS 만들기
next js build time
코드를 수정 하면 HMR이 랜더링을 다시 하는데 빌드타임이 너무 오래 걸려요ㅜㅜ stackoverflow에서 비슷한 글들도 많이 올라오는데 혹시 해결할수 있을만한 추천방법이 있을까요?
-
홍정모의 따라하며 배우는 C언어
최고입니다.
내용중 버릴게 하나도 없네요 최고예요 정말
-
자바스크립트 머신러닝 TensorFlow.js
Node 프로젝트 생성 후 코드 실행 안되시는 분들
터미널이나 CMD 를 이용하여 해당 프로젝트 루트 경로로 이동 후에 npm install @tensorflow/tfjs 이 명령어 실행해 주시고, JavaScript 파일 만드신 후에 이런 식으로 코드 작성해주시면 IDE 상에서도 잘 실행됩니다. const tf = require('@tensorflow/tfjs');const t1 = tf.scalar(1);const t2 = tf.scalar(2), t3 = tf.scalar(5);const t5 = tf.add(t1, t2).div(t3);tf.print(t5); tf 변수를 이용할 때는 require에서 저렇게 선언 후에 tf 변수에 할당하면 되더라구요. 원래 이렇게 하는게 맞는지는 모르겠으나, 그래도 강의 보면서 코드 따라 칠 수 있으니 좋네요.
-
자바스크립트 머신러닝 TensorFlow.js
열심히 듣겠습니다
최근에 ES6 심화과정 완료했고 복습도 하고있지만, TensorFlow 도 너무나 궁금하기에 짬내면서 병행해서 들어보려합니다. 수학과 뗄 수 없다길래 걱정도 많이 되지만, 이전에 JavaScript 강좌에서 잘 알려주셨던 것을 생각하면 안심도 됩니다. 이번 강좌는 책도 꼭 참고해서 보고싶네요.
-
Node.js 웹개발로 알아보는 백엔드 자바스크립트의 이해
삽질의 중요성
수강평에 어떤 분이 삽질하는거 처리하는데 시간이 걸린다고 강의시간이 아깝다고 불평을 해놨던데...... 저는 이렇게 오류가 나는 과정을 그대로 찍어주신거 너무 감사하게 생각합니다^^ 오히려 실행을 하고 에러가 안나면 "이게 왜 되지?" 하고 한 참 시간을 들여서 살펴보게 되는데~ 아예 처음부터 에러가 나주면 좋더라구요^^ ㅎㅎ;;;;
-
처음 배우는 리액트 네이티브
ios 시뮬레이터 expo 메뉴
커맨드 + 컨트롤 + J로 expo 메뉴가 안나오시면 커맨드 + d 를 이용해보세요
-
블록체인 이더리움 부동산 댑(Dapp) 만들기 - 기본편
모달이 먹통인 오류
혹시 매입 버튼을 눌러도 아무 반응이 없을 경우 1. 매입버튼 선언시 data-target="#buyEstate" << 이 부분을 바꿔줍니다. 2. 그리고 모달의 아이디도 똑같이 맞춰줍니다. 원인은 모르겠지만 이렇게 하니 모달이 뜨네요;
-
스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
강사님에게 요청합니다
안녕하세요 김영한님의 강의를 매번 잘 듣고 있는 햇병아리입니다 김영한님 강의를 들으면서 마구잡이 지식을 차곡차곡 정리하고 있는데 많은 도움을 받고있습니다 실무에서도 실제 코드를 리팩토링 하면서 강의내용을 한 번 더 상기하게 되고, 정말 하루하루 성장해나가는 거 같습니다 하지만 실무에서도 정말 어려운게 있었으니... 스프링 시큐리티!!!! 만 나오면 머리에 땀이 삐질삐질 나옵니다... 근본적인 원리를 잘 모르다 보니 했던거 또 하고 또 하고해도 매번 에러나도, 찾는데만 시간이 반나절이 걸리니... 인프런에서도 다른 좋은 강의가 있지만, 김영한님 쓰타일의 스프링 시큐리티를 들으면 어떨까 하면서 매번 생각합니다... 그래서!!!!!! 이렇게 무례를 무릎쓰고 요청을 드립니다 스프링 시큐리티 관련해서 강의를 만들어 주실수는 없으신가요?? 올해가 가기전에 제 작은 소망이 이루어 졌으면 좋겠습니다...ㅠㅠ 의향이 있으신지만이라도 알고 싶습니다... 감사합니다.
-
스프링 핵심 원리 - 기본편
효율적인 강의 순서
현재 강의를 듣긴하는데, 개념을 들을때는 이해가 가지만, 혼자 코딩하려면 잘 되지 않습니다. 마치 영어읽기를 따라쓰고, 따라 읽기는 가능하지만 작문을 하라고하면 아무생각이 안드는 느낌입니다. 강의를 듣고 따라치는것 외에 혼자힘으로 자바 코딩을 하기 위해서는 어떻게 공부를 해야할까요? 공부에는 왕도가 없다고하지만 좋은 방향성에 대해 여쭤보고 싶습니다! ㅜㅜ
-
실무에서 바로 쓰는 영어 이메일
강의 내용의 글을 일부 가립니다.
강사님 얼굴이 내용을 가립니다.
-
모던 자바스크립트(ES6+) 심화
선생님 스타일대로 하니 뭔가 더 간결해진 것 같습니다.
const DEFAULT_XHR = { method: 'POST'};function loadImage(param) { return new Promise((resolve, reject) => { const xhr = new XMLHttpRequest(); xhr.responseType = 'blob'; xhr.onload = function () { /* 수행 완료 시 처리 */ this.status === 200 ? resolve(window.URL.createObjectURL(this.response)) : reject(this); }; xhr.option = Object.assign({}, DEFAULT_XHR, param); xhr.open(xhr.option.method, xhr.option.url); xhr.send(); });}const main = { async getImage() { for (const url of this.option.URLS) { try { const imageUrl = await loadImage(url); this.appendImage(imageUrl); } catch (xhr) { this.serverError(xhr); } } }, appendImage(imageUrl) { const image = document.createElement('img'); image.onload = () => { window.URL.revokeObjectURL(imageUrl); }; image.src = imageUrl; document.querySelector('#result') .appendChild(image); }, serverError(xhr) { console.log(xhr.status); }};main.option = { URLS: [ {url: '../file/code.png'}, {url: '../file/rainbow.png'}, {url: '../file/없음.png'}, {url: '../file/rose.jpg'} ]};main.getImage(); main 변수를 선언 하고 그 안에서 해결하니 스코프도 제한되고 보기가 더 깔끔한게 엄청 나이스인거 같습니다! 아직 부족하긴 하지만 그래도 점점 나아가는 것이 제 스스로도 느껴지네요! 항상 좋은 강의 감사합니다.
-
WEB2 - CSS
인서트가 자꾸 눌리는건지
인서트가 자꾸눌리는건지 아톰에서 글자가 사라지는데 혹시 해결방법이 있을까요 ??
-
실습으로 배우는 AWS 핵심 서비스
오타 의심 부분
안녕하세요~ 강사님! 쉽고 알찬 강의 감사합니다. 강의화면에 사용된 그림 중에 route table의 카테고리 영역에 오타가 있는 것 같습니다. Destination과 Target의 위치가 서로 바뀐 것 같습니다~
-
스프링 핵심 원리 - 기본편
자바 8버전으로 해도 가능할까요??
자바 8버전으로 했을 때 오류들이 많을까요??
-
Node.js 웹개발로 알아보는 백엔드 자바스크립트의 이해
강의 너무 좋네요^^ 감사합니다!!!
^^이제 시작입니다만 ~ 너무 좋네요.
-
[리뉴얼] 처음하는 파이썬 데이터 분석 (쉽게! 전처리, pandas, 시각화 전과정 익히기) [데이터분석/과학 Part1]
R 강의 문의
안녕하세요 강사님! 걱정뿐이었던 저의 공부에 희망을 안겨주셔서 너무 감사합니다. 강사님 로드맵을 따라 강의를 듣고 있습니다! 머신 러닝 강의만 목 빠지게 기다리고 있는데요 ㅎㅎ 다름이 아니라 데이터 분석 스펙에 거의 빠짐없이 요구되고 있는 R 강의는 혹시 계획에 없으신가요...? ㅠㅠ 강사님 아니면 공부를 못하겠는 1인이 되었습니다,,
-
게임개발 관련 종사자분들 한번 더 설문조사 부탁드립니다.
- 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. *스팸, 광고 아닙니다! 도움 부탁드려요. 얼마 전에 부탁 드리는 설문 조사를 한번 올렸는데요, 수정을 좀더 하여 다시 한번 부탁 드립니다. 혹시나 도배로 보인다면 알려주세요 삭제하겠습니다. 도움에 감사드립니다. 비디오 게임 개발자분들의 도움이 필요합니다! 저희는 가상 비디오 게임 산업의 업무 상황에서 리더십 속성을 다루는 학문적 연구를 수행하고 있습니다. 이 연구를 위해 아래의 간단한 설문 조사에 참여해 주실 비디오 게임 산업의 다양한 분들(프로그래머, 데이터 엔지니어, 그래픽 디자이너, 디지털 아티스트, QA 테스터, 인공 지능 AI 프로그래머 등)을 찾고 있습니다. 한국과 미국에 거주하시는 분들께서 참여 가능하며 모든 참가자 분들은 연구 기간 동안 익명으로 유지됩니다. 비디오 게임 프로덕션에 대한 여러분의 기여는 전세계적인 엔터테인먼트의 필수 구성 요소입니다. 부디 아래 링크를 클릭하여 설문 조사(5분)에 참여를 부탁드립니다. 귀한 시간 내주셔서 감사드리며, 주변의 다른 게임 개발자 분들께도 참여를 부탁드려주시면 감사하겠습니다! 설문조사 참여 링크: (여기를 클릭하세요) = https://www.psychdata.com/s.asp?SID=192649 게임은 세상을 바꾸고 있으며 여러분의 목소리는 힘이 됩니다! #게임사랑 #게이머들의목소리
-
스프링 데이터 JPA
JPA save시 select 쿼리 질문
기선님 안녕하세요. JPA로 코드를 만들고 save()를 수행할 때, insert into ... 의 쿼리가 날아가기 이전에 select ~ where key 로 ID값에 해당하는 Select 쿼리를 한 번 날리더라구요. 이부분은 최적화가 필요 없나요? 줄인다면 더 실행속도가 빠를것같은데 기선님도 이전에 경험해보셨을 것 같아서요.. 이 부분은 어떻게 생각하시는지 궁금합니다.