묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결AWS 배포 완벽가이드 (feat. Lightsail, Docker, ECS)
WSL에 설치한 Redis에 연결이 안 됩니다.
import express from "express"; import * as redis from "redis"; const PORT = 4000; const createApp = async () => { const app = express(); const client = redis.createClient({ url: "redis://localhost:6379" }); await client.connect(); app.use(express.json()); app.get("/", (req, res) => { res.status(200).send("hello from express"); }); return app; }; createApp().then((app) => { app.listen(PORT, () => { console.log(`App listening at port ${PORT}`); }); });Error: connect ECONNREFUSED 127.0.0.1:6379 [1] at createConnectionError (node:net:1647:14) [1] at afterConnectMultiple (node:net:1677:16) { [1] errno: -4078, [1] code: 'ECONNREFUSED', [1] syscall: 'connect', [1] address: '127.0.0.1', [1] port: 6379 [1] }WSL의 bind를 0.0.0.0으로 바꿔봄방화벽에서 6379 포트 허용함WSL의 ip를 localhost 대신에 넣어서 접속 시도이렇게 했는데 실행하면 계속 연결할 수 없다는 에러가 발생합니다. 혹시 해결 방법을 알 수 있을까요?
-
해결됨개발자를 위한 쉬운 도커
도커 볼륨 공유에 대해 질문있습니다.
여러 DB가 동시에 한 볼륨을 공유할 때 발생하는 데이터 무결성 문제는 없나요?
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
H2 DB를 MySql로 마이그레이션
[질문 내용]H2의 Table과 Data를 MySql로 변환해서 쓰고 싶으면 어떻게 해야 할까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
판다스 다들으면 작업형 들으면 되나요?
판다스 강의 다듣고 작업형 들으려는데 작업형1모의문제1 부터 들으면 될까요? 강의안에서 지난시간에 작업형 첫번째 예시문제랑 기출문제를 풀어봤다고 말씀하시는데 풀어본 기억이 없어서요… 혹시 이전에 들어야하는 강의가 있을까요?
-
해결됨CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조
브랜치 노드와 리프노드의 개념이 해깔립니다.
첫번째 인덱스 강의에 브랜치 노드 부분을 생략하고 설명해주셨는데이 브랜치 노드가 부분을 알고 싶습니다.1부터 100까지 int타입의 값이 있는 property_id라는 column에 인덱스를 만들고where property_id=30을 하면30은 브랜치 노드에 있을 것 같은데설명해주신 부분에서는 데이터 포인터는 리프 노드에만 있다고 하셔서 이부분이 머리속에서 해깔립니다.
-
해결됨
QT6 툴바 TOOLS > option 이 안보입니다
qt6 강의를 듣고 있는데 옵션을 설정하기위해 Tools > Options 로 들어가라고 나와있는데 제 Qt6에서는 아무리 찾아봐도 Options를 못찾겠습니다..Options 들어가면 이 창이뜬다하는데 혹시 안보이면 들어가는 다른 방법이 있을까요?
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
다운로드 소스 코드 만드는 법
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 군 복무 중이라 사지방에서 재부팅하면 모든 작업 내용이 초기화되는 상황에서 인텔리제이를 계속 설치하며 공부 중입니다. 작업한 코드를 구글 스토리지 같은 외부 저장소에 업로드해 다음 학습 시점에도 이어서 사용하고 싶습니다. 김영한님의 강의에서 제공하는 다운로드 소스 코드와 비슷한 형태로 만들려면 어떻게 해야 할까요?
-
해결됨한 입 크기로 잘라먹는 Next.js(v15)
Next.js 페이지 별 레이아웃 적용 방법에 대한 궁금증입니다!
안녕하세요!!페이지 별 적용을 원하는 레이아웃이 있는 경우 getLayout 함수를 컴포넌트의 메서드로 추가하여 적용하는 강의를 들었습니다. 그런 식으로 레이아웃을 설정하는 방법은 처음 봐서 매우 새롭고 신기하고 즐거운 강좌였습니다. 감사합니다! 궁금한 점이 있는데요, 그렇게 했을 때 페이지별로 최상단에 SearchableLayout 컴포넌트를 적용하는 것과 무슨 차이가 있는지 궁금했습니다. (혹은 강의에서 그렇게 설명해주신 이유가 궁금합니다!)
-
미해결[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
datetime
/ 사용할 때와 : 사용할 때 어떻게 구분하나요?
-
해결됨스프링 시큐리티
AbstractSecurityInterceptor.class.beforeInvocation()를 2번 실행하는 경우
@Order(0) @Configuration @EnableWebSecurity public class SecurityConfig2 extends WebSecurityConfigurerAdapter { @Autowired private SecurityResourceService securityResourceService; @Autowired private FormAuthenticationDetailsSource authenticationDetailsSource; @Autowired private AuthenticationSuccessHandler customAuthenticationSuccessHandler; @Autowired private AuthenticationFailureHandler customAuthenticationFailureHandler; private String[] permitAllPattern = {"/", "/login", "/user/login/**"}; @Bean public PermitAllFilter customFilterSecurityInterceptor() throws Exception { PermitAllFilter permitAllFilter = new PermitAllFilter(permitAllPattern); permitAllFilter.setSecurityMetadataSource(urlFilterInvocationSecurityMetadataSource()); permitAllFilter.setAccessDecisionManager(affirmativeBased()); permitAllFilter.setAuthenticationManager(authenticationManagerBean()); return permitAllFilter; } private AccessDecisionManager affirmativeBased() { AffirmativeBased affirmativeBased = new AffirmativeBased(getAccessDecisionVoters()); return affirmativeBased; } private List<AccessDecisionVoter<?>> getAccessDecisionVoters() { List<AccessDecisionVoter<? extends Object>> accessDecisionVoters = new ArrayList<>(); accessDecisionVoters.add(new IpAddressVoter(securityResourceService)); accessDecisionVoters.add(roleVoter()); return accessDecisionVoters; } @Bean public RoleHierarchyVoter roleVoter() { RoleHierarchyVoter roleHierarchyVoter = new RoleHierarchyVoter(roleHierarchy()); return roleHierarchyVoter; } @Bean public RoleHierarchyImpl roleHierarchy() { RoleHierarchyImpl roleHierarchy = new RoleHierarchyImpl(); return roleHierarchy; } @Bean public FilterInvocationSecurityMetadataSource urlFilterInvocationSecurityMetadataSource() throws Exception { return new UrlFilterInvocationSecurityMetadataSource(urlResourcesMapFactoryBean().getObject(), securityResourceService); } private UrlResourcesMapFactoryBean urlResourcesMapFactoryBean() { UrlResourcesMapFactoryBean urlResourcesMapFactoryBean = new UrlResourcesMapFactoryBean(); urlResourcesMapFactoryBean.setSecurityResourceService(securityResourceService); return urlResourcesMapFactoryBean; } @Bean public AuthenticationProvider authenticationProvider() { return new FormAuthenticationProvider(passwordEncoder()); } @Bean public AccessDeniedHandler accessDeniedHandler() { CustomAccessDeniedHandler accessDeniedHandler = new CustomAccessDeniedHandler(); accessDeniedHandler.setErrorPage("/denied"); return accessDeniedHandler; } @Bean public AuthenticationSuccessHandler ajaxAuthenticationSuccessHandler() { return new AjaxAuthenticationSuccessHandler(); } @Bean public AuthenticationFailureHandler ajaxAuthenticationFailureHandler() { return new AjaxAuthenticationFailureHandler(); } @Bean public PasswordEncoder passwordEncoder() { return PasswordEncoderFactories.createDelegatingPasswordEncoder(); } @Override public AuthenticationManager authenticationManagerBean() throws Exception { return super.authenticationManagerBean(); } @Override protected void configure(AuthenticationManagerBuilder auth) { auth.authenticationProvider(authenticationProvider()); } @Override public void configure(WebSecurity web) { web.ignoring() .requestMatchers(PathRequest.toStaticResources() .atCommonLocations()); } @Override protected void configure(final HttpSecurity http) throws Exception { http.authorizeRequests() .antMatchers("/").permitAll() .antMatchers("/mypage").hasRole("USER") .antMatchers("/messages").hasRole("MANAGER") .antMatchers("/config").hasRole("ADMIN") .anyRequest().authenticated() .and() .formLogin() .loginPage("/login") .loginProcessingUrl("/login_proc") .authenticationDetailsSource(authenticationDetailsSource) .successHandler(customAuthenticationSuccessHandler) .failureHandler(customAuthenticationFailureHandler) .permitAll() ; http.exceptionHandling() .authenticationEntryPoint(new LoginUrlAuthenticationEntryPoint("/login")) .accessDeniedPage("/denied") .accessDeniedHandler(accessDeniedHandler()) .and() .addFilterBefore(customFilterSecurityInterceptor(), FilterSecurityInterceptor.class) ; http.csrf() .disable(); customConfigurer(http); } private void customConfigurer(HttpSecurity http) throws Exception { http.apply(new AjaxLoginConfigurer<>()) .successHandlerAjax(ajaxAuthenticationSuccessHandler()) .failureHandlerAjax(ajaxAuthenticationFailureHandler()) .setAuthenticationManager(authenticationManagerBean()) .loginProcessingUrl("/api/login"); } }
-
미해결
poetry install 명령시 CrewAI 관련 pyarrow 18.0.0 오류
-- Configuring incomplete, errors occurred! error: command '/Library/Frameworks/Python.framework/Versions/3.12/bin/cmake' failed with exit code 1 at ~/Library/Application Support/pypoetry/venv/lib/python3.12/site-packages/poetry/installation/chef.py:164 in _prepare 160│ 161│ error = ChefBuildError("\n\n".join(message_parts)) 162│ 163│ if error is not None: → 164│ raise error from None 165│ 166│ return path 167│ 168│ def preparesdist(self, archive: Path, destination: Path | None = None) -> Path: Note: This error originates from the build backend, and is likely not a problem with poetry but with pyarrow (18.0.0) not supporting PEP 517 builds. You can verify this by running 'pip wheel --no-cache-dir --use-pep517 "pyarrow (==18.0.0)"'. 의존성에 문제가 있는 것 같습니다. 어떻게 해결해야 할까요?
-
미해결
스프링부트 게시판 여러개 만들때
스프링부트 이용해서 자유게시판, 비밀게시판 이렇게 두 개 만들려고 하면 엔터티, 컨트롤러, DTO, Repository, Service 다 각각 만들어줘야 하나요?? 이미 하나는 만든 상태인데 다른 하나 만들려고 하는데 어렵네요 ㅠ
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
8-K 펜윅트리 구간합 구하기 범위 질문 드립니다.
안녕하세요 큰돌님?오늘은 문제 입력의 범위가 이해가 안되서 질문 들고 오게 되었습니다.8-K 문제 입력 범위는 long long으로 이해가 됐는데요, 그에 맞게 tree 도 long long 까지 해설에서 선언을 해주셨습니다 근데 입력받는 n의 개수가 1~100만개 이므로tree 벡터 안에 구간합이 범위 초과가 나진 않는가요?worst로 (2^-63)-1 이 연속으로 들어오는걸 가정하고 있습니다. 이 문구 때문에 long long 그대로 진행해도 범위 초과가 안나는게 맞을까요? 답변 미리 감사합니다.
-
해결됨김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
스레드 대기 집합과 스케쥴링 큐
1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]synchronized를 사용하면 사용되는 스레드 대기 집합과 기존 멀티스레드 환경에서 사용되는 스케쥴링큐는 다른건가요?
-
미해결Vue.js 완벽 가이드 - 실습과 리팩토링으로 배우는 실전 개념
깃허브 권한 요청 드립니다
인프런 아이디 : cool3797@gmail.com인프런 이메일 : cool3797@gmail.com깃헙 아이디 : cool3797@gmail.com깃헙 username : OtterCue
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
groupby / 데이터프레임형태
pd.DataFrame 을 하기도 전인데 이렇게 표 형태로 나오는 건 왜일까요?
-
해결됨[Unity] 함께 만들어가는 방치형 게임 개발
스테이지 반복이 진행될 수록 몬스터 스케일이 작아집니다.
현재 스테이트패턴 Dead 까지 수강한 상태이구요,스테이지의 반복이 진행될수록, 몬스터 스케일이 불규칙적으로 작아집니다.처음에는, 몬스터 스케일이 불규칙적으로 작아지는것에 있어서 몬스터가 스폰되는 중에 캐릭터가 100%까지 처치를 완료하여, SpawnStart 코루틴메서드를 통해 LocalScale이 커지고 있는 도중, Return 메서드가 호출되어 비활성화가 된듯한 느낌을 받아(게임오브젝트가 비활성화가 되면 코루틴메서드가 중단되지않나요?) 확인해보았으나, 정확하게 원인을 파악하지 못했습니다 ㅠ 그리고 몬스터가 스폰되지 않았음에도 허공에 어택모션을 계속 취하는 버그도 있습니다.분명 풀링에는 전부 비활성화인데, 타겟이 있는것처럼 허공에 공격모션을 계속 취하다가, 몬스터가 실제로 스폰되면 추적하여 공격을 실행합니다. 제가 혹시 코드에 잘못된부분이 있다면 리뷰 한번만 부탁드립니다. ㅠ 추가적으로 필요하신 코드나, 직접적인 버그영상이 필요하시면 댓글한번만 남겨주시면 동영상을 개인메일이나, 유튜브 링크로 첨부해서 보여드리겠습니다. using System.Collections; using System.Collections.Generic; using UnityEngine; public class Spawner : MonoBehaviour { public int M_Count; // 몬스터의 수 public float M_SpawnTime; // 몇 초마다 스폰이 될 것인지 결정. // 1. 몬스터는 여러마리가 몇 초 마다 수시로 여러번 스폰 되어야 한다. //Spawner 에 손쉽게 접근하기 위해, static으로 설계 public static List<Monster> m_monsters = new List<Monster>(); public static List<Player> m_players = new List<Player>(); private Coroutine coroutine; private void Start() { Base_Manager.Stage.M_PlayEvent += OnPlay; Base_Manager.Stage.M_BossEvent += OnBoss; } public void OnPlay() { coroutine = StartCoroutine(SpawnCoroutine()); } public void OnBoss() { if(coroutine != null) { StopCoroutine(coroutine); } for(int i = 0; i<m_monsters.Count; i++) { Base_Manager.Pool.m_pool_Dictionary["Monster"].Return(m_monsters[i].gameObject); //Destroy(m_monsters[i].gameObject); } m_monsters.Clear(); StartCoroutine(BossSetCoroutine()); } IEnumerator BossSetCoroutine() { yield return new WaitForSeconds(2.0f); var monster = Instantiate(Resources.Load<Monster>("Boss"), Vector3.zero, Quaternion.Euler(0, 180, 0)); // 보스 생성 monster.Init(); Vector3 Pos = monster.transform.position; // 같은 변수를 사용할 때는, 한 변수로 묶어서 사용하면 메모리 절약이 됨. (중복계산방지) // 일정 소환거리 내부에 플레이어가 존재하면, 보스 소환 시, 넉백을 합니다. for(int i = 0; i<m_players.Count; i++) { if(Vector3.Distance(Pos, m_players[i].transform.position) <= 3.0f) { m_players[i].transform.LookAt(monster.transform.position); m_players[i].Knock_Back(); } } yield return new WaitForSeconds(1.5f); m_monsters.Add(monster); Base_Manager.Stage.State_Change(Stage_State.BossPlay); } //Random.insideUnitSphere = Vector3(x,y,z) //Random.insideUnitCircle = Vector3(x,y) IEnumerator SpawnCoroutine() { Vector3 pos; for(int i = 0; i < M_Count; i++) { pos = Vector3.zero + Random.insideUnitSphere * 5.0f; pos.y = 0.0f; Vector3 returnPos = Vector3.zero; while (Vector3.Distance(pos, Vector3.zero) <= 3.0f) { pos = Vector3.zero + Random.insideUnitSphere * 5.0f; pos.y = 0.0f; } //몬스터 스폰 var go = Base_Manager.Pool.Pooling_OBJ("Monster").Get((value) => { // 풀링이 생성될때의 기능을 구현한다. value.GetComponent<Monster>().Init(); value.transform.position = pos; value.transform.LookAt(Vector3.zero); m_monsters.Add(value.GetComponent<Monster>()); }); } yield return new WaitForSeconds(M_SpawnTime); coroutine = StartCoroutine(SpawnCoroutine()); } } using System.Collections; using System.Collections.Generic; using UnityEngine; public class Monster : Character { /// <summary> /// 몬스터가 스폰이 될 때, 스케일의 크기변화를 줍니다. /// </summary> /// <returns></returns> IEnumerator Spawn_Start() { float current = 0.0f; float percent = 0.0f; float start = 0.0f; float end = transform.localScale.x; // 몬스터의 로컬스케일 Debug.Log($"몬스터의 로컬스케일 변화 :{transform.localScale.x}"); while(percent < 1) { current += Time.deltaTime; percent = current / 0.2f; float LerpPos = Mathf.Lerp(start,end, percent); // 선형보간 (시작값,끝값,시간) transform.localScale = new Vector3(LerpPos, LerpPos, LerpPos); yield return null; } yield return new WaitForSeconds(0.3f); isSpawn = true; } private void Dead_Event() { if (!isBoss) { Stage_Manager.Count++; Main_UI.Instance.Monster_Slider_Count(); } else { Base_Manager.Stage.State_Change(Stage_State.Clear); } Spawner.m_monsters.Remove(this); Base_Manager.Pool.Pooling_OBJ("Smoke").Get((value) => { value.transform.position = new Vector3(transform.position.x, 0.5f, transform.position.z); Base_Manager.instance.Return_Pool(value.GetComponent<ParticleSystem>().duration, value, "Smoke"); }); Base_Manager.Pool.Pooling_OBJ("COIN_PARENT").Get((value) => { value.GetComponent<Coin_Parent>().Init(transform.position); }); for (int i = 0; i < 3; i++) { Base_Manager.Pool.Pooling_OBJ("Item_OBJ").Get((value) => { value.GetComponent<Item_OBJ>().Init(transform.position); // 몬스터 위치 삽입 }); } if (!isBoss) { Base_Manager.Pool.m_pool_Dictionary["Monster"].Return(this.gameObject); } else { Destroy(this.gameObject); // 보스몬스터는 풀링하지않고 파괴한다. } } }
-
해결됨[임베디드 입문용] 임베디드 개발은 실제로 이렇게 해요.
프로젝트 생성해보기
디버그를 했더니ST-LINK: Could not verify ST device! Abort connection. 이런 오류가 나옵니다.검색해보니 fake 칩은 안된다는 말도 보이고.. 어떻게 해결해야 할지 잘 모르겠습니다.
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
비주얼스튜디오에서 빌드할 때 CS0103 "'Catch2' 이름이 현재 컨텍스트에 없습니다." 라는 에러메시지에 함께 빌드가 안되는데 어떡해야 될까요..
구글링을 해도 도저히 찾을 수가 없어서 질문 남겨봅니다.
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
인텔리제이 업데이트 후 문제 발생
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]인털레제이를 업데이트 한 후 모든 코드에 에러가 생깁니다...