inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

이야기를 나눠요

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

사이트 만들고 공유해도 되나요?

코드로 배우는 React 19 with 스프링부트 API서버

따라서 만들고 있는데요. 다 만들고 여기에 공유해도 되나요?

  • react
  • spring-boot
  • jpa
  • jwt
  • redux-toolkit
개발자 댓글 1 좋아요 0 조회수 314

실제 개발할 때의 마음가짐에 대해 질문드립니다.

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

Q. 실제 개발시에는 메서드가 하나 추가될 때마다 테스트해줘야 하는 것 맞을까요? 강의 상에서는 Order, OrderItem 코드 작성하시는 순서가 되게 유기적으로 매끄럽게 구성되어있는데요. 실제 코드 작성할 때는 실수도 나올 수 있고, 특정 메서드에 어느 클래스에 위치해야하는 게 좋을지에 대한 고민같은 것이 동반될 것 같다는 생각이 들 것 같다는 생각이 듭니다(실제로도 그래왔던 것 같구요). 좋은 강의를 수강하다보니 새로운 상황을 혼자 맞이할 때 막막한 순간에 어떤 마음가짐을 가져야할 지 고민이 되어 질문드립니다. p.s) 지금은 열심히 완강을 향해 달려가고 있는 중이라 강의평을 남기지 못하고 있는데, 여유가 되면 감사 인사 꼭 드리도록 하겠습니다. 항상 고마워요 영햔님....

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
Jaesang Yoon 댓글 1 좋아요 0 조회수 305

db 테이블 생성

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

실제 운영서버에서는 jpa 자동 생성을 사용하기 보다는 직접 db에서 create table을 이용해서 생성하는 걸 권장하시는 건가요??

  • java
  • jpa
sde101573 댓글 1 좋아요 0 조회수 316

일대다 페이징 방법

실전! Querydsl

삭제된 글입니다

  • java
  • jpa
재성 댓글 1 좋아요 0 조회수 543

SQL Error [42501]: ERROR: permission denied for database postgres

데이터 분석 SQL Fundamentals

안녕하세요 '실습용 스키마 설치 이슈 시 적용하세요'라는 강의편에 맥북에서 create schema nw; 이렇게 DBeaver에서 실행을 하면 아래와 같은 에라가 뜨네요 ㅠ SQL Error [42501]: ERROR: permission denied for database postgres

  • sql
  • postgresql
  • dbms/rdbms
심동희 댓글 0 좋아요 0 조회수 802

버전을 맞추었는데도 오류가 발생합니다. (pd ver: 2.0.3, sqlalchemy: 2.0.0)

다양한 사례로 익히는 SQL 데이터 분석

query = """ select * from nw.customers """ df = pd.read_sql_query(sql=query, con=postgres_engine) df.head(10) --------------------------------------------------------------------------- UnicodeDecodeError Traceback (most recent call last) Cell In[25], line 4 1 query = """ 2 select * from nw.customers 3 """ ----> 4 df = pd.read_sql_query(sql=query, con=postgres_engine) 5 df.head(10) File ~\anaconda3\Lib\site-packages\pandas\io\sql.py:468, in read_sql_query(sql, con, index_col, coerce_float, params, parse_dates, chunksize, dtype, dtype_backend) 465 if dtype_backend is lib.no_default: 466 dtype_backend = "numpy" # type: ignore[assignment] --> 468 with pandasSQL_builder(con) as pandas_sql: 469 return pandas_sql.read_query( 470 sql, 471 index_col=index_col, (...) 477 dtype_backend=dtype_backend, 478 ) File ~\anaconda3\Lib\site-packages\pandas\io\sql.py:832, in pandasSQL_builder(con, schema, need_transaction) 829 raise ImportError("Using URI string without sqlalchemy installed.") 831 if sqlalchemy is not None and isinstance(con, (str, sqlalchemy.engine.Connectable)): --> 832 return SQLDatabase(con, schema, need_transaction) 834 warnings.warn( 835 "pandas only supports SQLAlchemy connectable (engine/connection) or " 836 "database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 " (...) 839 stacklevel=find_stack_level(), 840 ) 841 return SQLiteDatabase(con) File ~\anaconda3\Lib\site-packages\pandas\io\sql.py:1539, in SQLDatabase.__init__(self, con, schema, need_transaction) 1537 self.exit_stack.callback(con.dispose) 1538 if isinstance(con, Engine): -> 1539 con = self.exit_stack.enter_context(con.connect()) 1540 if need_transaction and not con.in_transaction(): 1541 self.exit_stack.enter_context(con.begin()) File ~\anaconda3\Lib\site-packages\sqlalchemy\engine\base.py:3245, in Engine.connect(self) 3222 def connect(self) -> Connection: 3223 """Return a new :class:`_engine.Connection` object. 3224 3225 The :class:`_engine.Connection` acts as a Python context manager, so (...) 3242 3243 """ -> 3245 return self._connection_cls(self) File ~\anaconda3\Lib\site-packages\sqlalchemy\engine\base.py:145, in Connection.__init__(self, engine, connection, _has_events, _allow_revalidate, _allow_autobegin) 143 if connection is None: 144 try: --> 145 self._dbapi_connection = engine.raw_connection() 146 except dialect.loaded_dbapi.Error as err: 147 Connection._handle_dbapi_exception_noconnection( 148 err, dialect, engine 149 ) File ~\anaconda3\Lib\site-packages\sqlalchemy\engine\base.py:3269, in Engine.raw_connection(self) 3247 def raw_connection(self) -> PoolProxiedConnection: 3248 """Return a "raw" DBAPI connection from the connection pool. 3249 3250 The returned object is a proxied version of the DBAPI (...) 3267 3268 """ -> 3269 return self.pool.connect() File ~\anaconda3\Lib\site-packages\sqlalchemy\pool\base.py:452, in Pool.connect(self) 444 def connect(self) -> PoolProxiedConnection: 445 """Return a DBAPI connection from the pool. 446 447 The connection is instrumented such that when its (...) 450 451 """ --> 452 return _ConnectionFairy._checkout(self) File ~\anaconda3\Lib\site-packages\sqlalchemy\pool\base.py:1255, in _ConnectionFairy._checkout(cls, pool, threadconns, fairy) 1247 @classmethod 1248 def _checkout( 1249 cls, (...) 1252 fairy: Optional[_ConnectionFairy] = None, 1253 ) -> _ConnectionFairy: 1254 if not fairy: -> 1255 fairy = _ConnectionRecord.checkout(pool) 1257 if threadconns is not None: 1258 threadconns.current = weakref.ref(fairy) File ~\anaconda3\Lib\site-packages\sqlalchemy\pool\base.py:716, in _ConnectionRecord.checkout(cls, pool) 714 rec = cast(_ConnectionRecord, pool._do_get()) 715 else: --> 716 rec = pool._do_get() 718 try: 719 dbapi_connection = rec.get_connection() File ~\anaconda3\Lib\site-packages\sqlalchemy\pool\impl.py:168, in QueuePool._do_get(self) 166 return self._create_connection() 167 except: --> 168 with util.safe_reraise(): 169 self._dec_overflow() 170 raise File ~\anaconda3\Lib\site-packages\sqlalchemy\util\langhelpers.py:147, in safe_reraise.__exit__(self, type_, value, traceback) 145 assert exc_value is not None 146 self._exc_info = None # remove potential circular references --> 147 raise exc_value.with_traceback(exc_tb) 148 else: 149 self._exc_info = None # remove potential circular references File ~\anaconda3\Lib\site-packages\sqlalchemy\pool\impl.py:166, in QueuePool._do_get(self) 164 if self._inc_overflow(): 165 try: --> 166 return self._create_connection() 167 except: 168 with util.safe_reraise(): File ~\anaconda3\Lib\site-packages\sqlalchemy\pool\base.py:393, in Pool._create_connection(self) 390 def _create_connection(self) -> ConnectionPoolEntry: 391 """Called by subclasses to create a new ConnectionRecord.""" --> 393 return _ConnectionRecord(self) File ~\anaconda3\Lib\site-packages\sqlalchemy\pool\base.py:678, in _ConnectionRecord.__init__(self, pool, connect) 676 self.__pool = pool 677 if connect: --> 678 self.__connect() 679 self.finalize_callback = deque() File ~\anaconda3\Lib\site-packages\sqlalchemy\pool\base.py:902, in _ConnectionRecord.__connect(self) 900 self.fresh = True 901 except BaseException as e: --> 902 with util.safe_reraise(): 903 pool.logger.debug("Error on connect(): %s", e) 904 else: 905 # in SQLAlchemy 1.4 the first_connect event is not used by 906 # the engine, so this will usually not be set File ~\anaconda3\Lib\site-packages\sqlalchemy\util\langhelpers.py:147, in safe_reraise.__exit__(self, type_, value, traceback) 145 assert exc_value is not None 146 self._exc_info = None # remove potential circular references --> 147 raise exc_value.with_traceback(exc_tb) 148 else: 149 self._exc_info = None # remove potential circular references File ~\anaconda3\Lib\site-packages\sqlalchemy\pool\base.py:898, in _ConnectionRecord.__connect(self) 896 try: 897 self.starttime = time.time() --> 898 self.dbapi_connection = connection = pool._invoke_creator(self) 899 pool.logger.debug("Created new connection %r", connection) 900 self.fresh = True File ~\anaconda3\Lib\site-packages\sqlalchemy\engine\create.py:640, in create_engine.<locals>.connect(connection_record) 638 if connection is not None: 639 return connection --> 640 return dialect.connect(*cargs, **cparams) File ~\anaconda3\Lib\site-packages\sqlalchemy\engine\default.py:580, in DefaultDialect.connect(self, *cargs, **cparams) 578 def connect(self, *cargs, **cparams): 579 # inherits the docstring from interfaces.Dialect.connect --> 580 return self.loaded_dbapi.connect(*cargs, **cparams) File ~\anaconda3\Lib\site-packages\psycopg2\__init__.py:122, in connect(dsn, connection_factory, cursor_factory, **kwargs) 119 kwasync['async_'] = kwargs.pop('async_') 121 dsn = _ext.make_dsn(dsn, **kwargs) --> 122 conn = _connect(dsn, connection_factory=connection_factory, **kwasync) 123 if cursor_factory is not None: 124 conn.cursor_factory = cursor_factory UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb8 in position 63: invalid start byte 판다스 버전과 sqlalchemy 버전은 다음과 같이 맞추었습니다 2.0.3 2.0.0

  • sql
  • postgresql
  • dbms/rdbms
  • 퍼포먼스-마케팅
  • 데이터-엔지니어링
KoKuMa 댓글 1 좋아요 0 조회수 2338

JPA 프로젝트 성능테스트 환경 구축 질문있습니다.

실전! 스프링 데이터 JPA

강사님의 강의를 보고 Spring/JPA 토이 프로젝트를 만들고 성능 테스트를 진행해보려고 합니다. 현재 프로젝트는 AWS EC2 프론티어 클라우드 서버에서 구동 중인데, 성능 테스트 시 aws를 이용하게 되면 부담스러운 비용이 발생할까봐 우려되었습니다. 때문에 로컬 환경에서 가상머신을 띄우고 실구동환경의 컴퓨팅 자원과 동일하게 세팅한 뒤 테스트를 진행해보려고 하는데, 이러한 방식으로 진행한 테스트 결과가 실제 서버에 적용할 수 있을만큼 유의미한지 궁금합니다. 질문 읽어주셔서 감사합니다.

  • java
  • spring
  • spring-boot
  • jpa
김민규 댓글 1 좋아요 0 조회수 470

선생님 안녕하세요!

Oracle PL/SQL 딱 이만큼.. [개념+실전]

안녕하세요! 수업 정말 잘듣고 있습니다!! 공부한거를 블로그에 작성 하려하는데 예제 같은 것을 출처를 밝혀 포스팅 해도될까요??

  • sql
  • oracle
  • PL/SQL
고재형 댓글 1 좋아요 0 조회수 504

테스트 환경에서 h2 db 를 사용하는 경우 실용성에 대하여

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

테스트 환경에서 h2 메모리 db 를 사용하는 방식에 대한 실용성 관련 고민이 있습니다. 프로젝트를 진행하다보면 기본적으로 orm 기반으로 구현을 하지만 일부 예외적인 기능들은 특정 dbms 에 의존적인 쿼리를 직접 실행하는 경우가 불가피하게 발생하는 듯 합니다. 이 경우 특정 dbms(예를들어 mysql) 에 대한 의존성이 발생할 수 밖에 없는데요. 이때 운영 dbms 와 다른 메모리 db(h2) 를 사용하여 테스트를 작성하게 불가능해지고 결국엔 실환경과 동일한 테스트용 db 를 세팅하는식으로 다시 변경하게 되는 듯 합니다. (결국 메모리 db 를 이용한 간단한 테스트를 사용할 수 없는 상황) 실무적인 차원에서 이런 경우 보통 어떤 방식으로 해결하는게 최선일지 궁금합니다.

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
JaeWon Lee 댓글 1 좋아요 0 조회수 708

Spring Cloud Config 사용시 의존 문제

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

강의 잘 듣고 있습니다. msa를 현업에서 적용시키려고 하고있는데 질문이있습니다. Spring Cloud Config 가 가지고 있는 경로에 Database 연결 정보를 넣고 db를 사용하는 Micro service들이 해당 config서비스를 빌드시 참조하도록 설계해보았는데요, Spring Cloud Config service에 너무 의존을 하고 있는거 같단 생각이 듭니다. 해당 서비스가 먹통이되면 다른 서비스 모두 db는 사용할 수 없다는 치명적인 이슈가 있으니까요. 현업에서 Spring Cloud Config 서비스를 구현할 때에 이렇게 크리티컬한 정보는 사용하지 않는지, 사용한다면 어떻게 의존성이 강한 문제를 해결 할 수 있는지 궁금합니다.

  • spring-boot
  • jpa
  • 아키텍처
  • spring-cloud
  • kafka
  • msa
  • rabbitmq
성현 댓글 0 좋아요 0 조회수 637

SSR 시 HTTP Patch 메소드는 redirect를 수행할 수 없나요 ?

실전! 스프링 데이터 JPA

@RequestMapping(value = "blog/{blogId}/poster/{posterId}/edit", method = RequestMethod.PATCH) ResponseEntity<String> editPoster(@PathVariable(required = false) Long blogId, @PathVariable(required = false) Long posterId, @ModelAttribute PosterDto posterDto, Model model) throws URISyntaxException { categoryService.findCategoryAndAddToModel(blogId, model); posterService.updatePosterByDto(posterId, posterDto); String redirectUrl = "/blog/" + blogId + "/poster/" + posterId; System.out.println("redirectUrl = " + redirectUrl); // 리다이렉션을 원하는 경우 URI location = new URI(redirectUrl);// 새로 업데이트된 리소스의 URI 생성; return ResponseEntity.status(HttpStatus.SEE_OTHER).location(location).body("Resource updated successfully"); } 안녕하세요 JPA주제는 아니지만 아무리 찾아봐도 안떠서 여기에라도 질문을 올립니다.. 일단 제가 하고있는 프로젝트는 서버사이드 렌더링으로 타임리프를 사용하고있습니다. 영한님의 MVC 강의 중 PRG(Post Redirect and Get) 기법을 사용하는 것을 보고 항상 Post method로 데이터를 수정하고 redirect 하는 컨트롤러를 만들었습니다. 어느날 Patch 나 Put 이 데이터를 수정하는데 쓰이는 HTTP method라는 말을 듣고 Patch나 Put을 사용한 후 리다이렉트를 해줬는데 리다이렉트가 안되는 문제가 발생하였습니다. 구글링을 해봐도 Patch 후에 redirect 하는 방법은 거의 나오질 않고 gpt한테 물어보니 저런 방법을 쓰라고 해서 썼지만 화면이 전환되지 않는 문제가 있었습니다. Patch method 는 redirect를 할 수 없는지 그렇다면 redirect 를 사용한다면 Post method 를 사용하는 것이 좋은지 궁금합니다.

  • java
  • spring
  • spring-boot
  • jpa
김승수 댓글 1 좋아요 0 조회수 392

자바 스프링 공부 방향과 로드맵

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

삭제된 글입니다

  • java
  • spring
  • mvc
  • spring-boot
  • jpa
  • 로드맵
srbboot 댓글 1 좋아요 0 조회수 1756

Spring Data JPA로 Mysql Full Text Search 기술 가용여부 질문

실전! 스프링 데이터 JPA

안녕하세요 스프링 데이터 JPA 강의를 듣다 질문이 생겨 문의드립니다. 토이프로젝트로 JPA를 사용하여 Mysql 전문검색(Full Text Search)를 해보는 중입니다. public interface JpaMenuReviewRepository extends JpaRepository<MenuReview, Long> { @Query(value = "SELECT * FROM menu_review WHERE MATCH (comments) AGAINST (:keyword IN NATURAL LANGUAGE MODE)", nativeQuery = true) List<MenuReview> findMenuReviewByCommentsContainingOnFullTextSearchWithQuery(@Param("keyword") String keyword); } JPA에서는 Full Text Search를 지원하지 않아서 nativeQuery로 다음과 같이 쿼리문을 작성하였습니다. 그런데 전문검색을 위해서 Table의 컬럼에 Full index를 추가해야 전문검색 쿼리가 작동한다고 알고 있는데요, JPA의 해당 특징은 "JPA의 DDL 자동 생성 기능" 또는 "JPA의 스키마 자동 생성 기능"으로 알고 있습니다. 이 기능은 JPA가 애플리케이션의 Entity 클래스를 분석하고, 이를 바탕으로 데이터베이스 스키마를 자동으로 생성하거나 업데이트하는 역할을 하여 @Entity , @Table , @Column 등의 애노테이션을 사용하여 엔티티 클래스를 정의하면, JPA는 이 정보를 바탕으로 필요한 테이블과 컬럼을 데이터베이스에 생성하는데요, 이럴 경우에는 제가 "ALTER TABLE tbl_query ADD FULLTEXT INDEX FullText (`comments` ASC)" 해당 ddl문을 넣을 수 없어서 곤란한 상황입니다. JPA, Mysql에서는 Full Text Search를 사용할 수 없는 건가요? 차선책으로 Elastic Search, Postgre, Mongo를 구상중인데 차선책으로 우회해야할지 고민입니다. 추가로 실무에서는 전문검색 기능을 위해 어떤 방법을 쓰시는지, 관련해서 문의드리고 싶습니다. 강의내용과 동떨어져 있는 질문이라 죄송합니다.

  • java
  • spring
  • spring-boot
  • jpa
하윤 댓글 1 좋아요 0 조회수 1939

그러면 API를 개발할 때 최선의 방법은 무엇인가요?

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

이번 API 개발 고급 - 컬렉션 조회 최적화를 쭉 들으면서 생긴 고민입니다. V1 ~ V3 까지의 각각의 명확한 차이점과 최적화 과정에 대해 이해하고 왜 이렇게 사용하는지에 대략적으로 이해하였습니다. 반면에 V4, V5, V6의 경우 DTO를 직접 조회를 통해 쿼리문의 간소화를 진행시키는 방법으로 최적화를 진행하는 것에 배웠는데 질문 1) 최종적인 실무에서는 V3.1의 fetch join 방식과 DTO를 통해 최소한의 쿼리 줄이는 방식 중 어느 것이 더 대중화된 방식인지 궁금합니다. 질문 2) 명확히 정해진 방식이 없다면 어느 부분에서는 fetch join 방식이 유용한지 dto 방식이 유용한지 아직 잘 이해가 되지 않습니다. 관련 지식을 학습할만한 검색 키워드를 알려주실수 있으신가요?

  • java
  • spring
  • spring-boot
  • jpa
재성 댓글 1 좋아요 0 조회수 392

슬슬 머리 터질 거 같으면 개추

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

이해가 안되고 머리가 아파온다

  • java
  • jpa
한성현 댓글 1 좋아요 4 조회수 592

빠르게 코딩하기 위한 단축기 문의 (팁)

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

삭제된 글입니다

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
hello4298 댓글 1 좋아요 0 조회수 443

면접 때, fetchjoin 관련 질문을 받았었는데요

실전! Querydsl

"N+1 문제 관련하여 어떻게 하면 해결할 수 있느냐?" 최근에 위와 같은 질문을 받았었는데요. 당연히 일반적으로 fetch join을 사용하니까 위와 같이 대답을 했었는데. 그렇다고 모든 걸 fetch join으로 사용할 수 없으니까 다른 최적화된 방법에 대해 아는게 있냐고 질문하시더라고요. 그래서 그 부분과 관련해서 질문드리는데요. 혹시 이론적인 부분 말고 실무적으로 위와 같은 내용을 해결할 수 있는 방법이 있을까요? 제가 생각했던 방법 중의 하나는 연관 관계를 맺지 않은 상태에서 해당 테이블의 PK를 갖고 있는 건데. (예를 들어, 주문 테이블, 상품 테이블이 있다면 주문 테이블에서 상품 테이블의 PK를 단순 컬럼 선언으로 갖고 있는 구조) 이런 구조로 해결할 수도 있나요? 이론적으로 JPA에서는 연관관계를 맺지만 실무적으로도 연관관계를 무조건적으로 맺어야 하나요? 예를 들어, FK가 걸려있는 회원과 게시판 테이블이 있는데 '게시판 글 등록'을 하게 되면 실제 존재하는 회원인지 회원 테이블에서 확인을 할 텐데 회원 테이블의 데이터가 1,000만명이면 그걸 다 확인하는 구조일텐데 현실적으로 이런 것들을 고려해서 실무에서는 어떡게 해결하시는지 궁금합니다.

  • java
  • jpa
ㅅㅎ 댓글 1 좋아요 0 조회수 666

선생님 혹시 tableau 강의는 없을까요

[백문이불여일타] 데이터 분석을 위한 중급 SQL 문제풀이

SAS만 다뤘었고 SQL + Python이 대세인 가 싶었는데 어느 순간 대시보드 구축능력도 요구하네요 ㅋㅋㅋㅋ tableau 강의가 있으실지요.. 뭐부터 손을 대야 할지 .. 고민입니다.

  • sql
러시안블루 댓글 0 좋아요 0 조회수 504

목록을 보는 회차에서 zipcode가 안불러와지는 이유가..?

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

앞선 수강생처럼 Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as a fallback.Mon Oct 30 21:40:32 KST 2023There was an unexpected error (type=Internal Server Error, status=500).An error happened during template parsing (template: "class path resource [templates/members/memberList.html]")org.thymeleaf.exceptions.TemplateInputException: An error happened during template parsing (template: "class path resource [templates/members/memberList.html]") 여기서 zipcode받는 부분을 html부분에서 빼고 받지 않으면 실행이 됩니다. 그런데 zipcode를 받는 부분이 문제가 없어보이는데... 계속 검토중이긴 합니다만..혹여나아시는게 있을까 싶어서..

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
김범준 댓글 2 좋아요 0 조회수 347

인기 태그

인프런 TOP Writers

주간 인기글