inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

이야기를 나눠요

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

섹션 4 어떻게 변경할 것인가? 관련해서 질문드립니다

Java/Spring 테스트를 추가하고 싶은 개발자들의 오답노트

현재 토이프로젝트의 service단이 너무 큼+테스트 코드가 필요하다고 생각해서 두 가지 방법을 생각했는데요 1. 서비스 클래스 나누기 2. 도메인 레이어 추가 2번을 위해 도메인을 나누고자 했는데, 어떻게 나눠야할 지 감이 잡히질 않아서 해당 강의를 수강했습니다 그런데 해당 강의를 보면서, 사실 제 프로젝트가 CRUD 정보밖에 없는 것 같더라구요ㅎㅎㅎ,, 물론 소스코드를 봐야 제대로 파악이 되시겠지만, 이 경우에는 차라리 직관적인 레이어드 아키텍처로 가져가고, 서비스 클래스를 나누는게 더 나을까요?? 물론 적용해보면 좋은 내용이겠지만(그리고 다른 프로젝트에 적용해봐서 실습할 생각이지만) 프로젝트 규모가 너무 작은거 아닐까 싶어서요 서비스가 최대 7개의 레포를 갖고있는데, 이 경우에는 각 서비스 클래스의 책임을 재정의하는게 맞을지 궁금합니다

  • spring
  • tdd
  • jpa
  • 소프트웨어-테스트
  • unittest
tmdgk4902 댓글 0 좋아요 0 조회수 375

서브쿼리

데이터 분석 SQL Fundamentals

서브쿼리만 따로 실행하면 상관 컬럼으로 참조한 컬럼은 메인쿼리에 있어서 서브쿼리 단독 실행이 안되는 바람에 문제점 파악하기도 힘들고 쿼리가 메인부터 실행되는게 아니라 서브부터 실행되기 때문에 가장 안쪽에 있는 서브쿼리부터 거꾸로 해석해야해서 직관적으로 의미를 알아내기도 어렵고... 정말 끔찍해요 안썼으면 좋겠어요... 최초 강의에 포함되지 않은 이유가 있는것같아요

  • sql
  • postgresql
  • dbms/rdbms
  • 서브쿼리
Geonu Park 댓글 1 좋아요 0 조회수 430

초기환경 설치에 관한 자료는 어디에 있나요

하트카운트와 함께 쉽게 시작하는 SQL

24년 9월 10일에 강의를 듣기 시작했습니다... 그런데 초기환경 설치 방법에 관한 자료를 못찾아서 글 남깁니다.. 어디에 있는지.. 알려 주시거나,,, 게시판에 올려 주시면 좋겠습니다.

  • sql
  • mysql
  • sql-query
M.S kang 댓글 1 좋아요 0 조회수 447

혹시 쿼리를 빨리 읽는 방법이 있을까요?

데이터 분석 SQL Fundamentals

혹시 쿼리를 빨리 읽는 방법이 있을까요? 제가 실무에서 프로시저와 함수들을 주로 사용하고 있습니다. 그런데 제가 SQL 에 익숙하지 않아서 인것도 있지만 주석이 없는 프로시저와 함수들을 보고 의도를 파악하고 분석하는데 시간이 너무 오래 걸리고 있어요. 혹시 서브쿼리 join , union 등이 무분별하게 쓰여진 복잡한 쿼리에서 쿼리의 의도만을 빠르게 파악할 수 있는 방법이 있을까요? 제 나름대로 생각을 해서 SELECT 절은 일단 보지 않고 FROM 절을 먼저 보고 어떤 테이블에서 값을 가지고 오는지 판단한후 WHERE 절을 보고 마지막으로 SELECT 절을 보고 있어요 그런데 SELECT 절에서도 CASE WHEN 문이나 단일행 서브쿼리들이 있어서 실행을 시켜보아도 이게 무슨의미인지 파악하지 못할때가 많아요,, 방법이 있을까요?

  • sql
  • postgresql
  • dbms/rdbms
minhyuck WOO 댓글 1 좋아요 0 조회수 1022

as 별칭을 한글로 하고 싶을 때

초보자를 위한 BigQuery(SQL) 입문

안녕하세요. 특정 컬럼명을 한글로 지정하여 노출하고 싶을 때에는 어떻게 해야 하나요? 별칭 지정할 때에는 따옴표 없이 사용하는거라 하셔서 아래처럼 시도해봤는데, 에러가 뜹니다. select id as 포켓몬아이디, kor_name, eng_name, type1 from basic.pokemon where type1 = 'Fire' 다른 부서원들에게 전달해야 할 때에는 컬럼명을 한글로 노출하여 전달해야 할 일이 많을 것 같아서요.컬럼명을 한글로 노출하려면 어떻게 해야 할까요? 혹시 몰라 ', " 도 함께 사용해봤는데 여전히 오류가 뜹니다. (에러문구는 다르게 뜨긴 하네요) ' 로 시도 " 로 시도

  • sql
  • bigquery
h8476952 댓글 1 좋아요 0 조회수 472

BigQuery 입문 강의 수강 후 dataset 선정 및 진행 방향성

초보자를 위한 BigQuery(SQL) 입문

안녕하세요. 초보자를 위한 BigQuery(SQL) 입문 잘 들었습니다. 생각보다 재미가 있어서 계속 해보려 하는데 무엇을 해야할지 잘 몰라서 고민입니다. 강의 후반부에 "앞으로 배우면 좋을 내용" 에 있는 순서대로 해보려 했습니다. 공식 문서와 블로그 글을 통해 ARRAY, STRUCT의 기본 공부를 했습니다. 다음으로 넘어가 복잡한 데이터 가공하기 부분을 하고 있습니다. 우선 bigquery의 공개 데이터를 사용해 보자는 생각을 했고 Google Trends datasets과 COVID-19 Public Datasets을 살펴봤습니다. 세부사항과 데이터를 보며 어떤 것을 의미하는지까지는 알 수 있었습니다. 다만 이후부터 어떻게 해야할지 감이 안 왔습니다. 강의를 수강할 때는 예제 문제들이 있으니 배운 것을 적용할 수 있었는데, 처음 보는 데이터고 어떤 목적을 갖고 분석을 해야할지 모르겠습니다. bigquery 프로젝트 예제를 찾아봤지만 마땅한게 없었습니다. 혹시 이 강의를 수강하고 연습해 보기 좋은 dataset과 어떤 방식으로 프로젝트를 진행해야 할지 알고 싶습니다.

  • sql
  • bigquery
  • 데이터-리터러시
타크로 댓글 1 좋아요 0 조회수 552

[필터 기능] incldues.text vs .each 사용에 대한 차이점 문의

실무에 바로 적용하는 프런트엔드 테스트 - 2부. 테스트 심화: 시각적 회귀・E2E 테스트

// shopping-mall-e2e-test-with-answer cy.findAllByTestId('product-card').each($el => { cy.wrap($el).findByText('Shoes').should('exist'); }); // 제 답변 cy.findAllByTestId('product-card').should('includes.text', 'Shoes'); 필터 기능을 공식문서를 참고해서 직접 작성해보다가 궁금한 점이 생겼습니다. Github에 있는 답변처럼 반복문을 돌려 Shoes가 존재하는 지 검증하는 테스트와 제가 작성한 includes.text를 활용하는 방법 사이에 큰 차이점이 있을까요? 어떤게 더 효율적인 테스트 작성방법인지 문의드립니다!

  • javascript
  • tdd
  • 소프트웨어-테스트
  • vitest
  • e2e
  • chromatic
wanderlust 댓글 1 좋아요 1 조회수 324

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 조회수 827

버전을 맞추었는데도 오류가 발생합니다. (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 조회수 2347

선생님 안녕하세요!

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

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

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

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

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

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

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

테스트 가이드 강의 수강하고 프로젝트 진행 중 번외로 질문하고 싶은 것이 있어 문의남깁니다 !

Practical Testing: 실용적인 테스트 가이드

제가 테스트 강의를 다 보고 프로젝트를 진행하던 도중에 막혔던 테스트 케이스가 있어 이렇게 문의드립니다. 바쁘시겠지만 혹시나 시간이 나신다면 한번 피드백 주시면 감사하겠습니다 ㅠㅠ https://mingeonho1.tistory.com/entry/JUnit5-WithMockUser%EC%97%90%EC%84%9C-username%EC%9D%B4-%EC%9D%98%EB%8F%84%EB%8C%80%EB%A1%9C-%EC%9E%91%EB%8F%99-%EC%95%88-%ED%95%A8 간단하게 궁금한점을 작성해봤습니다. - 블로그에 작성한 것처럼 외부로 분리해서 테스트한게 맞았을까요?? - @WithMockUser에 대해 제가 정확하게 이해한게 맞을까요?? - 틀리거나 부족한 내용은 없을까요?? 좋은 하루보내세요 감사합니다.

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
HOYA 댓글 1 좋아요 0 조회수 458

github 관련 질문

Practical Testing: 실용적인 테스트 가이드

강사님의 강의를 듣기 시작한 학생입니다. 제 개인 github에 강의에서 들은 내용을 정리하며 들을라 하는데, 코드를 작성하신 것을 올려도 될까요?

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
tjdwo6269 댓글 1 좋아요 0 조회수 410

모든 계층에 테스트 코드를 작성하는건 비효율적일까요?

Practical Testing: 실용적인 테스트 가이드

강사님의 훌륭한 강의를 듣고 현재 진행하고 있는 프로젝트에 테스트 코드를 작성하려고 합니다. 프로젝트 크기는 크지만(개인적인 생각) 아직 테스트 코드는 작성하지 않았고, 해당 프로젝트는 계층형 아키텍처로 이루어져있습니다. 개인적으로 테스트 코드는 유효성 검사를 하는 Presentation Layer보다는 Domain Layer와 같이 중요하고 복잡한 로직이 있는 곳에 더 필요하다고 생각합니다. 그래서 테스트 코드를 작성하는 것도 비용이라고 생각해서 우선은 도메인 로직과 관련된 테스트 코드를 작성하고 컨트롤러와 같이 적은 역할을 하는 곳에 테스트 코드를 차례대로 작성하려고 합니다. 테스트 코드를 작성한 경험이 없어서 부족한 점이 많은데 이렇게 테스트 코드를 프로젝트에 도입하는게 맞을까요? 강사님의 의견이 궁금합니다! 그리고 실무에서도 프로덕션 코드에 맞는 테스트 코드를 모두 작성하시는지 아니면 필요하다고 생각하는 곳에만 작성하시는지도 궁금합니다.

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
alsdl0629 댓글 1 좋아요 0 조회수 623

sql 이후 머신러닝을 배우려 합니다.

데이터 분석 SQL Fundamentals

이왕이면 강사님께서 올리신 강좌를 구매해 이어서 학습을 해보려 합니다. 로드맵이 있다면, 보고 구매를 하려고 했는데 올려져 있는 강의 수는 많은데 머신러닝 관련 로드맵이 없더라고요 파이썬 머신러닝 완벽 가이드, 딥러닝 컴퓨터 비전 완벽 가이드 딥러닝 CNN 완벽 가이드 캐글 advanced 머신러닝 실전 박치기 이 강의들을 기본부터 학습하려 하는데요 오래된 강좌가 개정되어 다른 이름으로 만들어져 있어서 내용이 겹치는게 있는지 아니면 모두 수강하는게 맞는지 어떤 순서로 학습하면 되는지 알고 싶습니다.

  • sql
  • postgresql
  • dbms/rdbms
bluebamus 댓글 1 좋아요 0 조회수 687

안녕하세요 선생님 SQLD 자격증을 취득하기위해선 해당 강의 로드맵을 다 듣는게 좋을까요?

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

안녕하세요. 강의를 보면서 열심히 공부하고있습니다. 다름이 아니라 이번에 SQLD 자격증 시험을 신청했습니다. 해당 강의 로드맵을 다 듣고 노랭이 책을 풀려고하는데, 해당 강의 로드맵을 전체적으로 들으면 될까요?

  • sql
Glitch 댓글 0 좋아요 0 조회수 423

With 문

데이터 분석 SQL Fundamentals

강사님 안녕하세요, 조인실습2에서 부서명 SALES와 RESEARCH 소속 직원별로 과거부터 현재까지 모든 급여를 취합한 평균 급여 예시가 조금 헷갈립니다. With 문이 서브쿼리 역할을 하는걸로 이해하고 있는데 해당 예시에서 왜 with문이 왜 필요한지, with문 또는 서브쿼리 사용하지 않고 쿼리를 진행시키는 방법이 있는지 궁금합니다ㅠ

  • sql
  • postgresql
  • dbms/rdbms
Taylor Shin 댓글 2 좋아요 0 조회수 576

나래비는 일본어 입니다..

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

선생님.. 나래비는 일본어 입니다. 어감이 예뻐서 옛 우리말인줄 알고 찾아봤는데 '줄을 세우다'라는 일본어 '나라비'가 어원이라고 하네요

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

안녕하세요 아직 다 못봤지만 질문이 있습니다.

Practical Testing: 실용적인 테스트 가이드

강의에서는 controller 만 Mock를 사용했는데 service쪽도 테스트할떄도 Mock으로 테스트를 진행자주 하나요? 2. 이건 개인적인 취향일수도 있는데 dto를 생성할때 재사용성이 없는 class에 내부 클래스 즉 static class를 만들어서 여러개의 class를 만들어서 사용하는 방법도 하시던데 어떤걸 선호 하시나요?

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
오개발 댓글 1 좋아요 0 조회수 596

Ubuntu 설치 시

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

안녕하세요. 강의 시작시, 사용중인 PC(노트북)의 OS를 Linux(Ubuntu)로 변경하는 게 조금 부담이 있어, Virual Machine 을 설치하여 해당 강의를 수강하여도 무방할까요?? 현재 PC(노트북)의 Memory는 16GB입니다.

  • javascript
  • node.js
  • express
  • docker
  • tdd
  • rest-api
  • nestjs
houng3321 댓글 0 좋아요 0 조회수 812

인기 태그

인프런 TOP Writers

주간 인기글