inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

DB 락 획득 설정

미해결

스프링 DB 1편 - 데이터 접근 핵심 원리

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 아니오 [질문 내용] 안녕하세요. 트랜잭션을 시작한 후 CUD 쿼리를 사용하는 경우 자동으로 DB 락을 획득하게 되는걸까요? 혹시 원한다면 락을 걸지 않고 사용하는 설정도 있을 지 궁금합니다. 스프링을 사용할 때 @Lock 과 같은 애노테이션으로 락을 설정하는 것으로 기억하는데 설정을 하지 않아도 CUD 에서는 자동으로 락을 획득하게 되는걸까요?

  • spring
jaden 댓글 1 좋아요 0 조회수 411

첨부 파일 코드자체 에러발생합니다. Test시에

미해결

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

Execution failed for task ':test'. > There were failing tests. See the report at: file:///C:/Users/kimta/Desktop/김영한%20강의자료/mvc2/message/build/reports/tests/test/index.html * Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

  • spring
  • mvc
taeu kim 댓글 2 좋아요 0 조회수 1017

교안 요청

미해결

[핵집] 2025 빅데이터 분석기사(필기)_과목 3~4

1~2, 3~4 모두 수강신청했습니다. julianminci@naver.com으로 부탁드립니다. 더운 날씨에 건강 조심하세요. 감사합니다.

  • 빅데이터
julianminci 댓글 1 좋아요 0 조회수 157

노드버드 7장 오류 질문드립니다

미해결

[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지

app.js const express = require("express"); const cookieParser = require("cookie-parser"); const morgan = require("morgan"); const path = require("path"); const session = require("express-session"); const nunjucks = require("nunjucks"); const dotenv = require("dotenv"); const { sequelize } = require("./models"); dotenv.config(); const pageRouter = require("./routes/page"); const app = express(); app.set("port", process.env.PORT || 8001); app.set("view engine", "html"); nunjucks.configure("views", { express: app, watch: true, }); //force:true로 할 시 서버 재시작시 모든 데이터베이스 날리고 다시 시작, true는 개발용 sequelize .sync() .then(() => { console.log("데이터베이스 연결 성공"); }) .catch((err) => { console.error(err); }); app.use(morgan("dev")); app.use(express.static(path.join(__dirname, "public"))); app.use(express.json()); app.use(express.urlencoded({ extended: false })); app.use(cookieParser(process.env.COOKIE_SECRET)); app.use( session({ resave: false, saveUninitialized: false, secret: process.env.COOKIE_SECRET, cookie: { httpOnly: true, secure: false, }, }) ); app.use("/", pageRouter); app.use((req, res, next) => { const error = new Error(`${req.method} ${req.url} no exist router.`); error.status = 404; next(error); }); app.use((err, req, res, next) => { res.locals.message = err.message; res.locals.error = process.env.NODE_ENV !== "production" ? err : {}; res.status(err.status || 500); res.render("error"); }); app.listen(app.get("port"), () => { console.log(app.get("port"), "waiting at the empty port."); }); index.js const Sequelize = require("sequelize"); const fs = require("fs"); const path = require("path"); const env = process.env.NODE_ENV || "development"; const config = require("../config/config.json")[env]; //설정 불러오기 const db = {}; const sequelize = new Sequelize( //불러온 설정을 시퀄라이즈와 연결하는 부분 config.database, config.username, config.password, config ); const basename = path.basename(__filename); //index.js fs.readdirSync(__dirname) .filter((file) => { return ( file.indexOf(".") !== 0 && // .으로 시작하는 파일은 숨김 파일이라는 의미 그래서 제외 file !== basename && //현재 파일인 index.js는 제외 file.slice(-3) === ".js" //마무리로 확장자가 .js인 파일만 불러오기 ); }) .forEach((file) => { const model = require(path.join(__dirname, file)); console.log(file, model.name); db[model.name] = model; //model.name은 model파일에서 class의 이름과 동일함 model.initiate(sequelize); }); Object.keys(db).forEach((modelName) => { //위에서 initiate할 때 같이 associate까지 하면 되지 않냐라고 할 수 있지만 associate는 모든 파일을 initiate해주고 해야함 console.log(db.modelName); if (db[modelName].associate) { db[modelName].associate(db); } }); module.exports = db; //시퀄라이즈와 그의 모델들은 자주 사용하니까 서로 묵어서 exports 해줌 언제어디서든 쓸 수 있게 .sync() ^ TypeError: Cannot read properties of undefined (reading 'sync') at Object.<anonymous> (C:\Users\zzan9\OneDrive - dgu.ac.kr \nodejs\nodebirdSNS2\app.js:22:6) at Module._compile (node:internal/modules/cjs/loader:1267:14) at Module._extensions..js (node:internal/modules/cjs/loader:1321:10) at Module.load (node:internal/modules/cjs/loader:1125:32) at Module._load (node:internal/modules/cjs/loader:965:12) at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:83:12) at node:internal/main/run_main_module:23:47 Node.js v20.1.0 이런 오류가 뜨는데 왜 뜨는지 모르겠습니다.. 검색해도 답이 나오지 않길래 질문드립니다

  • node.js
  • mysql
  • mongodb
  • express
신민규 댓글 1 좋아요 0 조회수 592

'동기'와 '동시성 프로그래밍'에 대해 질문드립니다.

미해결

앨런 iOS Concurrency(동시성) - 디스패치큐와 오퍼레이션큐의 이해

안녕하세요 앨런(Allen)님! 수강 중 질문이 생겨 처음 인사드립니다. [섹션0.GCD - 1.GCD/Operation에 앞서] 강의까지 듣고 동기(Sync)는 동시성 프로그래밍(Concurreny Programming)이 아닌 건지 질문 드립니다. - 2개 이상의 프로세스가 동시에 작업 하는 것이 ‘동시성 프로그래밍(Concurreny Programming)’ 이고 IOS에서 이러한 동시성 프로그래밍을 사용하기 위해 작업을 대기행렬(Queue)에 보내며, 대기행렬(Queue)은 직렬(Serial)과 동시(Concurrency)이라는 특성 을 가지고 있다고 이해했습니다. 이 과정에서 동기(Sync) 는 작업을 다른 스레드(Thread)에서 하도록 시킨 후, 기다렸다가 다음 일을 진행한다고 설명해 주셨는데 그렇다면 동기(Sync)는 동시성 프로그래밍(Concurreny Programming)이 아닌 건지 확실하게 확인하고 넘어가면 좋을 것 같아 질문을 드리게 되었습니다. 추가로 대기행렬(Queue)의 특성 중 직렬(Serial) 은 작업을 분산시킨 *메인 스레드(Thread)가 있기 때문에 동시성 프로그래밍(Concurreny Programming)으로 볼 수 있다고 이해했는데 이해한 내용이 맞는지도 함께 답변 주시면 큰 도움이 될 것 같습니다. *강의 영상에서 말하는 Thread1을 작성한 것입니다. - 혹시 제가 잘못 이해한 부분이 있으면 함께 답변 남겨주시면 감사하겠습니다 :)

  • ios
  • swift
Ellie 댓글 2 좋아요 0 조회수 531

값형식 배열의 요소에 참조값을 넣는 방법이 있을까요?

미해결

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문

안녕하세요. 우선 질문의 취지는 다음과 같습니다. 값형식의 배열요소에 필드변수를 직접 할당하는데 참조형식으로 할당하는 방법이 있나요? 문득 궁금해서 여쭤봅니다.

  • C#
모루 댓글 1 좋아요 0 조회수 432

퍼블리싱 싸이트 관련

해결됨

[Bloc 응용] 실전 앱 만들기 (책 리뷰 앱) : SNS 로그인, Firebase 적용, Bloc 상태 관리, GoRouter

강의 내용중 피그마로 모바일 퍼블리싱한 싸이트가 있던데 저도 접속해서 볼 수는 없나요?

  • flutter
  • firebase
  • bloc
박상우 댓글 2 좋아요 0 조회수 311

파일질라 카페24? 관련 질문입니다

미해결

면접과 취업을 부르는 '퍼블리셔 개인 포트폴리오 홈페이지' 제작

위 사진처럼 넣은 이미지들이 상대경로는 잘나오는데 절대경로는 안나온는데 상대경로만 가능한걸까요?

  • HTML/CSS
  • jquery
  • 포트폴리오
heejae0529 댓글 1 좋아요 1 조회수 460

갑자기 에러가 나는데 부탁드려보겠습니다.

미해결

토비의 스프링 부트 - 이해와 원리

Caused by: java.lang.IllegalArgumentException: standardService.connector.startFailed 어제까지도 잘 돌아가던게 갑자기 이 에러가 나는데 왜 그러는건가요 ?

  • spring
  • spring-boot
  • spring-jdbc
내일은 한걸음 더 나아갈거야 댓글 3 좋아요 0 조회수 505

findByName에서 npe 오류 여쭤봅니다

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. findByName에서 자꾸 오류가 뜹니다 ㅠㅠ 근데 그게 정확한 이유가 뭔지 모르겠어요 Member.java package hwang.hwangspring.domain; public class Member { private Long id; //시스템이 정해줌 private String name; //고객이 회원가입할 때 적는 이름 public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } } MemoryMemberRepository.java package hwang.hwangspring.repository; import hwang.hwangspring.domain.Member; import java.util.*; public class MemoryMemberRepository implements MemberRepository{ private static Map<Long,Member> store = new HashMap<>(); private static long sequence= 0L; //0,1,2 키값을 생성 @Override public Member save(Member member) { member.setId(++sequence); store.put(member.getId(), member); return member; } @Override public Optional<Member> findById(Long id) { return Optional.ofNullable(store.get(id)); } @Override public Optional<Member> findByName(String name) { return store.values().stream() .filter(member -> member.getName().equals(name)) .findAny(); } @Override public List<Member> findAll() { //실무에서 List 많이 씀 return new ArrayList<>(store.values()); } } package hwang.hwangspring.repository; import hwang.hwangspring.domain.Member; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.*; class MemoryMemberRepositoryTest { //굳이 public x, 따른데서 갖다쓸게 아니니까.. MemberRepository repository = new MemoryMemberRepository(); @Test public void save(){ Member member = new Member(); //멤버 생성 member.setName("Hwang"); repository.save(member); Member result = repository.findById(member.getId()).get(); //System.out.println("result = "+(result==member)); //Assertions.assertEquals(member,result); //expected, actual assertThat(result).isEqualTo(member); } @Test public void findByName(){ Member member1 = new Member(); member1.setName("seo"); repository.save(member1); Member member2 = new Member(); member1.setName("hyun"); repository.save(member2); Member result= repository.findByName("seo").get(); assertThat(result).isEqualTo(member1); } }

  • java
  • spring
  • mvc
  • spring-boot
도도한 하마 댓글 2 좋아요 0 조회수 532

deque강의에서 사이즈를 3으로 잡아뒀는데, 메모리에서는 4로 잡히는 이유가 뭘까요?

미해결

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문

deque강의 12:14분경에 deque<int> dq(3,1)로 해서 사이즈를 3으로 잡아뒀는데, push_back을 했을 때 메모리에서 확인하면 4개로 확인이되고 그렇게 설명하셨는데, 왜 4개인지 알 수 있을까요?

  • c++
2juneyong 댓글 1 좋아요 0 조회수 350

컴파일 오류

미해결

스프링 프레임워크는 내 손에 [스프1탄]

csrf 강의 들으면서 실행중에 No bean named 'springSecurityFilterChain' available 이라고 에러가 떳습니다. 어떻게 해결해야하나요

  • jsp
  • spring
  • mvc
  • spring-security
최현제 댓글 1 좋아요 0 조회수 439

scroll-timeline.js 파일을 cdn으로 불러 올 수 없을까요??

미해결

웹 애니메이션의 새로운 표준, Web Animations API

웹 제작 에디터(아임웹)에서 해당 기능을 사용하려고 합니다. 수업에서는 파일을 불러오는데.. 웹 에디터에서는 그런 기능을 지원하지 않아 전체를 복사해서 붙여 넣었는데 오류가 발생합니다. 외부 기능을 쓰는 web-animations 기능은 cdn으로 적용이 잘 되었습니다. 혹시 scroll-timeline.js 내용도 cdn으로 불러올 수 있는 방법이 있을까요?? 검색해도 찾을 수가 없어 문의드립니다. ^^a

  • HTML/CSS
  • javascript
  • 웹-디자인
  • 인터랙티브-웹
  • frontend
박의태 댓글 1 좋아요 0 조회수 583

배포시에 또 nest build 하는 이유가 궁금합니다.

미해결

Slack 클론 코딩[백엔드 with NestJS + TypeORM]

안녕하세요! 배포 강좌를 보면서 궁금한점이 생겨서 질문을 남깁니다. 배포를 할때 nest build 명령어로 빌드를 하고 서버에 풀을 받아서 서버를 start를 하게 되는데요 그런데 npm run start:dev를 하면 개발시에 dist 파일이 생기는데 왜 한번 더 빌드를 해주는건가요?

  • node.js
  • express
  • nestjs
  • typeorm
sub 댓글 1 좋아요 0 조회수 931

안녕하세요! 수업자료 다운 받았는데요

미해결

나도코딩의 자바 기본편 - 풀코스 (20시간)

JavaWorkspace 압축 풀고 IntelliJ에서 파일을 열려고 하는데, Trust Project가 없는데 어떡하나요?

  • java
  • 객체지향
코딩초보 댓글 2 좋아요 0 조회수 275

Custom User 정보 views에서 request 값

미해결

파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트

안녕하세요. 커스텀 유저 모델을 만들어 잘 적용하였습니다. 템플릿 쪽에서는 로그인된 유저의 {{ user }} 형태로 접근하여 커스텀으로 만든 필드들의 값에 접근이 잘 됩니다. views에서 request.user 를 할 경우, 커스텀 된 필드들의 값을 사용할 수 없고 기본 유저 모델의 필드값만 나오고 있습니다. 어떤 장치를 해주어야 커스텀 된 필드 값들을 모두 사용할 수 있는지 찾아보았지만 정확히 알아내지 못하였습니다... 임시로 request.user를 통해 현재 로그인 된 사용자 정보를 가져오고 커스텀 유저 모델에서 동일한 유저를 찾아서 정보를 사용하는 형태로 해두었는데, 좋은 방향이 아닌듯하여 도움을 얻고자 질문을 남기게 되었습니다. def home(request): login_user = request.user user_site = User.objects.filter(email=login_user).get().site site_id = SiteInfo.objects.filter(site_name=user_site).get().pk boat_info = BoatInfo.objects.filter(site=site_id) return render(request, 'monitoring/home.html', { 'boat_info': boat_info, }) 번외로 템플릿에서 DB 데이터 갯수만큼만 DIV를 행렬로 만들어야 하는데, 짧은 지식으로 아래와 같이 구현해 보았습니다만, 좋은 방향으로 보이진 않아서 계속 고민 중에 있습니다. 한번 살펴봐 주시면 감사하겠습니다(꾸벅) {% for boat in boat_info %} {% if forloop.counter0 != 0 and forloop.counter0|divisibleby:3 %} </div> {% endif %} {% if forloop.counter0|divisibleby:3 %} <div class="row"> {% endif %} <div class="col">{{ boat }}}</div> {% if forloop.last %} </div> {% endif %} {% endfor %}

  • react
  • python
  • django
  • docker
김도하 댓글 1 좋아요 0 조회수 266

블루트린트 말고 c++ 로 액터를 생성하는 이유가 뭔가요?

미해결

이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해

언리얼 입문을 블프 튜토리얼로 입문하고나서 이득우님의 강의를 보고 있는데요, 블프로 하면 시각적인 환경에서 간단한 클릭들로 액터를 만들고 메쉬를 지정할수 있는데, 액터를 c++로 만드는 이유가 궁금합니다. 단순히 c++에서의 원리도 알겸 하는건지, c++로 액터를 생성하는게 실무적인 측면에서 더 좋은건지 궁금합니다.

  • unreal-engine
  • ue-blueprint
  • 언리얼-c++
Jong Park 댓글 1 좋아요 1 조회수 992

포팅부탁드립니다.

미해결

FreeRTOS 프로그래밍

- 사용하고 싶은 ST 보드명 : NUCLEO H743ZI2 - 사용하시는 컴파일러(stm32cubeide) 버젼: 1.12.1

  • 운영체제
  • 임베디드
  • FreeRTOS
IT초보 댓글 1 좋아요 1 조회수 411

getter&setter를 보고 있습니다 물음표로 주석 단 부분은 왜 null 값이 나오나요?

미해결

나도코딩의 자바 기본편 - 풀코스 (20시간)

package nodocoding; public class 21 GetterSetter { public static void main(String[] args) { BlackBox b1 = new BlackBox(); b1.modelName = "까망이"; b1.price = 200000; b1.color = "블랙"; // 할인 행사 b1.price = -5000; System. out .println("가격: " + b1.price + "원"); // 고객 문의 System. out .println("해상도: " + b1.resolution); System. out .println("--------------"); BlackBox b2 = new BlackBox(); b2.setModelName("하양이"); b2.setPrice(-5000); b2.setColor("화이트"); System. out .println("가격: " + b2.getPrice() + "원"); System. out .println("가격: " + b2.price + "원"); System. out .println("해상도: " + b2.getResolution()); System. out .println("해상도: " + b2.resolution); ///??? } }

  • java
  • 객체지향
댓글 2 좋아요 0 조회수 382

인기 태그

인프런 TOP Writers

주간 인기글