묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!
브로커의 개수와 서버의 개수
하나의 서버에 하나의 브로커가 설치 되어 있다고 말씀해 주셨는데 복제 옵션이 3일 때, 적어도 3개의 서버를 실행되고 있어야 하는 건가요?
-
미해결입문강의 타입스크립트부터 ionic6 (앵귤러 기반)
회의실 상세 페이지 만들기 강의 중 type 에러
회의실 상세페이지 만들기 강의 듣고 있는데요.meeting-room-detail 스크립트 작성 시 room: Rooms 선언한 부분에서 계속 type에러가 발생합니다.room 은 이니셜라이저가 없고, 생성자에 할당되어 있지 않다는 오류가 떠서 type을 undefined로 선언을 해줬더니 아래 param 으로 id 를 받아오는 부분에서는 undefined 형식은 Rooms 형식에 할당할 수 없다는 에러 메시지가 계속 뜹니다.room!: Rooms 로도 해봤는데 그렇게 하면 null 형식은 Rooms 형식에 할당할 수 없다고 뜨는데, 어떻게 해결을 하면 될까요?
-
미해결홍정모의 따라하며 배우는 C언어
int (*pa)[4]와 int*pa의 차이
#include <stdio.h> int main() { float arr2d[2][4] = { {1.0f,2.0f,3.0f,4.0f},{5.0f,6.0f,7.0f,8.0f} }; float(*pa)[4] = arr2d; printf("%u %u \n", (unsigned)pa, (unsigned)(pa + 1)); printf("%u %u\n", (unsigned)arr2d[0], (unsigned)arr2d[1]); printf("%u %u\n", (unsigned)pa[0], (unsigned)(pa[0] + 1)); printf("%f\n", pa[0][0]); printf("%f\n", *pa[0]); printf("%f\n", **pa); printf("%f\n", pa[1][3]); printf("%f\n", *(*(pa + 1) + 3)); float* ptr = arr2d; printf("%u %u \n", (unsigned)ptr, (unsigned)(ptr + 1)); printf("%u %u\n", (unsigned)arr2d[0], (unsigned)arr2d[1]); printf("%u %u\n", (unsigned)ptr[0], (unsigned)(ptr[0] + 1)); printf("%f\n", ptr[0][0]); printf("%f\n", *ptr[0]); printf("%f\n", **ptr); printf("%f\n", ptr[1][3]); printf("%f\n", *(*(ptr + 1) + 3)); }강의 9:47에서 int(*pa)[4]가 나옵니다.강의 10:20에서 교수님께서 pa는 4개의 float자료형을 가진 배열에 대한 포인터라고 하셨습니다.저는 이것을 [4개의 float자료형을 가진 배열]의 배열에 대한 즉, 2차원배열에 대한 포인터라고 이해했습니다.float arr[4] = { 1.0f,2.0f,3.0f, 4.0f }; float(*pa)[4] = arr;Q1. 위처럼 (*pa)[4]에 1차원 배열도 넣을수 있는건가요? float(*pa)[4]에서 [4]가 헷갈리는것같습니다. 정확히 정의를 내리기가 힘듭니다. float(*pa)[4]란 무엇인가요?ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡpa는 어쨋든 그냥 단순한 포인터 변수 하나 라고 이해했습니다.그래서 똑같이float* ptr = arr2d; 포인터 변수를 하나 선언하고 거기에 2차원 배열([4개의 float자료형을 가진 배열]의 배열을 넣어줬습니다.저는 pa랑 ptr은 그냥 외형만 다를뿐 문법적으로 같은 포인터변수라고 이해했습니다.그런데 pa같은 경우printf("%f\n", pa[0][0]); printf("%f\n", *pa[0]); printf("%f\n", **pa); printf("%f\n", pa[1][3]); printf("%f\n", *(*(pa + 1) + 3));이중포인터처럼 사용가능한 반면ptr의 경우는printf("%f\n", ptr[0][0]); printf("%f\n", *ptr[0]); printf("%f\n", **ptr); printf("%f\n", ptr[1][3]); printf("%f\n", *(*(ptr + 1) + 3));이중포인터처럼 사용하면 밑줄이 뜨고 오류가 떳습니다.그림을 그려보니 ptr은 당연히 단순 포인터변수이기에 이중포인터처럼 사용은 불가능했습니다. Q2.그렇다면 어째서 pa는 포인터변수인데도 이중포인터처럼 사용이 가능한건가요? 또 pa와 ptr의 차이는 무엇인가요? 항상 감사합니다. 진짜 진짜 진짜 감사합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
재귀함수로 구현한 조합 함수 관련 질문드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. void combi(int a, vector <int> b) { if (b.size() == k) { print(b); return; } for (int i = a + 1; i < n; i++) { b.push_back(i); combi(i, b); b.pop_back(); } return; } 위의 함수에서 for문 다음의 return 함수를 없애도 함수의 동작에는 문제가 없고 더 빨리 동작하는데 return을 쓸 때의 이점이 있나요? 다른 코드들을 볼 때도 return;이 없어도 동일하게 동작하지만 return;이 있는 많은 예문들을 보게 되는데 return;을 코드에 추가하는 그 이유를 알고 싶습니다. 또한 return;을 넣는 순간 동작 시간이 약 0.08초에서 0.22초로 증가하게 되는데 그 이유를 알고 싶습니다.
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
맵에서 위치 변경하기
파란점 위치를 변경 방법을 알 수 있을까요?
-
해결됨외워서 끝내는 네트워크 핵심이론 - 기초
TCP 연결 이라는 착각 강의 질문
안녕하세요, 강의 잘 수강하고 있습니다!L4 강의 중 TCP 연결 이라는 착각이라는 말을 하셨는데요, 강의를 다시 들어보아도 정확히 어떤 요지인지를 파악하기 어려워서 질문 남겨봅니다! 4 way handshake이 일어나지 않아도 연결은 끊긴 상태일수 있다는 의미인 것인지.. 구체적인 의미를 알려주시면 감사드리겠습니다!
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
사용자 이름 수정에서 막힙니다
강의 코드를 그대로 따라가고 있지는 않고 기존에 알고 있던 내용이랑 합쳐서 코드를 작성하고 있습니다.Controller@PutMapping("/user") public void updateUserName(@RequestBody UpdateUserDto updateDto) { userService.updateUserName(updateDto.getId(), updateDto.getName()); }Dtopublic class UpdateUserDto { private long id; private String name; public long getId() { return id; } public String getName() { return name; }Repository@Override public void updateUserName(long id, String name) { String sql = "update user set name = ? where id = ?"; jdbcTemplate.update(sql, name, id); }Service@Override public void updateUserName(long id, String name) { userRepository.updateUserName(id, name); } 수정을 눌렀을 때 name은 정상적으로 값이 넘어오는데 id가 계속 0으로 넘어옵니다,,등록 시에는 DB에 id가 정상적으로 입력되고 있는데 뭐가 문제일까요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
forward 메소드 설명 부분 이해가 안됩니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]이 부분을 설명하실 때, 강사님께서“고객 요청이 오면 service 메소드가 호출이 되고 ,viewPath라는 경로의 jsp를dispatcher의 forward 함수가 다시 호출을 하고서버 내부에서 서버끼리 new-form.jsp로 제어권을 넘겨준다” 라고 말씀하셨습니다. 여기서 이해가 안되는 부분이 2개 있습니다.1."서버 내부에서 서버끼리"라고 말씀하셨는데 이건 어떤 어떤 서버를 얘기하는 건가요?서블릿은 "자바를 사용해 웹 페이지를 동적으로 생성하는 서버 내 프로그램"이라고 설명이 나와있습니다.그러면 서블릿이 하나 하나의 서버이고, MvcMemberFormServlet 서블릿에서 new-form.jsp 서버로 상호작용을 하고있다. 이렇게 이해하면 되는건가요?이게 아니라면, "서버 내부에서 서버끼리"라는 것은 어떤 서버 내부에서 어떤 서버들을 이야기 하시는 건가요? 2. "new-form.jsp로 제어권을 넘겨준다"에서 MVC 패턴에서 제어권이란 정확히 어떤 개념인가요?제어권이란 현재 데이터에 접근하는 "서블릿이나 서버 또는 객체"를 의미하는건가요?설명 부탁드립니다.
-
미해결
파이게임 버그 도와주세요,,,,
import pygame from turtle import back import time pygame.init() def text_0(): screen.fill((0,0,0)) # 배경 검은색 배경 pygame.display.update() #게임화면 다시그리기 sound.play() time.sleep(9) sound.stop() screen.blit(iphone,(0,0)) #배경 그리기 pygame.display.update() #게임화면 다시그리기 time.sleep(4) def text_1(): text=["어...어라?","음... 꿈인가?","에이 설마~","망했다!!!!!!!!!!!!!!!!!!"] check_text=False global check_break check_break=0 for i in text: check_text=0 for j in range(len(i)): for event in pygame.event.get(): if event.type == pygame.KEYDOWN: if event.key == pygame.K_ESCAPE: running_esc=True #이부분 ################################## while running_esc: dt = clock.tick(60) screen.blit(esc,(0,0)) mouse_x,mouse_y=pygame.mouse.get_pos()#좌표구하기 if (out_button_x_pos<mouse_x<out_button_x_pos+out_button_width and out_button_y_pos<mouse_y<out_button_y_pos+out_button_height): screen.blit(out_touch_button,(out_button_x_pos,out_button_y_pos)) else: screen.blit(out_button,(out_button_x_pos,out_button_y_pos)) pygame.display.update() ################################### if event.key == pygame.K_SPACE: screen.blit(room,(0,0)) myText = myFont.render(i, True, (0,0,255)) screen.blit(myText, (1000,900)) pygame.display.update() check_text=True if check_text: break screen.blit(room,(0,0)) myText = myFont.render(i[0:j], True, (0,0,255)) screen.blit(myText, (1000,900)) pygame.display.update() time.sleep(0.3) while check_text: for event in pygame.event.get(): if event.type == pygame.KEYDOWN: if event.key == pygame.K_SPACE: check_text=False #화면크기 설정 screen_width=1920 #가로 screen_height=1020 #세로 screen=pygame.display.set_mode((screen_width, screen_height))#(가로,세로) #게임 이름 pygame.display.set_caption("Nado Game") #FPS clock = pygame.time.Clock() #배경 이미지 background = pygame.image.load("C:/python/pygame_basic/background_beta.png") start = pygame.image.load("C:/python/pygame_basic/start_beta.png") iphone = pygame.image.load("C:/python/pygame_basic/iPhone_beta.png") room =pygame.image.load("C:/python/pygame_basic/room_beta.png") esc=pygame.image.load("C:\python\pygame_basic\esc_beta.png") #버튼 이미지 out_touch_button=pygame.image.load("C:/python/pygame_basic/break_change_button.png") out_button=pygame.image.load("C:/python/pygame_basic/break_button.png") out_button_size = out_button.get_rect().size out_button_width = out_button_size[0] out_button_height = out_button_size[1] out_button_x_pos = (screen_width / 2) - (out_button_width/2) out_button_y_pos = (screen_height / 2)-(out_button_height/2) #캐릭터 가져오기 character = pygame.image.load("C:/python/pygame_basic/character.png") character_size = character.get_rect().size #캐릭터의 크기 character_width = character_size[0] #캐릭터의 가로 크기 character_height = character_size[1] #캐릭터의 세로 크기 character_x_pos = (screen_width / 2) - (character_width/2) #화면 가로의 절반 크기에 해당하는 곳에 위치(가로) character_y_pos = screen_height-character_height #화면 세로 크기 가장 아래에 해당하는 곳에 위치(세로) #캐릭터 좌표 to_x=0 to_y=0 #이동 속도 character_speed = 0.6 #효과음,배경음악 sound = pygame.mixer.Sound( "C:\python\pygame_basic\iPhone-Alarm-Original (online-audio-converter.com).wav" ) #폰트설정 myFont = pygame.font.SysFont("malgungothic",30) #이벤트 루프 global running running = True text_namber=1 #진행도 while running: dt = clock.tick(60) #게임화면의 초당 프레임 수 설정 #종료문 for event in pygame.event.get(): if event.type == pygame.KEYDOWN: if event.type == pygame.K_ESCAPE: running_esc=True #이부분 ##################################### while running_esc: dt = clock.tick(60) screen.blit(esc,(0,0)) mouse_x,mouse_y=pygame.mouse.get_pos()#좌표구하기 print(mouse_x,mouse_y) if (out_button_x_pos<mouse_x<out_button_x_pos+out_button_width and out_button_y_pos<mouse_y<out_button_y_pos+out_button_height): screen.blit(out_touch_button,(out_button_x_pos,out_button_y_pos)) else: screen.blit(out_button,(out_button_x_pos,out_button_y_pos)) pygame.display.update() ##################################### if text_namber==0: text_0() text_namber=1 if text_namber==1: text_1() text_namber=2 #pygame 종료 pygame.quit() 함수 안에선 마우스 좌표가 잘 구해져서 잘 실행 되는데 함수 안에선 마우스 좌표가 안구해져서 잘 실행이 안되요.....
-
해결됨Slack 클론 코딩[실시간 채팅 with React]
proxy, cors 관련해서 질문있습니다! (오류 사항은 아닙니다!)
안녕하세요. 혼자 개인 프로젝트를 하면서 강의를 듣고 있는데 궁금한 점이 생겨서 질문 남깁니다! 현재 projectA 안에 프론트, 백 폴더를 제로초님처럼 만들어놓고 프론트는 react+typescript / 백은 nestjs+typescript 로 전부 설치해놓은 상태입니다.다만, 이렇게 할 경우 proxy 설정을 프론트에서 해줘야 된다고 하여 아래 처럼 설정을 해당 강의 듣기전에 구글링하여 만들어놨었습니다. 미들웨어 설치 npm i http-proxy-middlewareprojectA > pront > src > setupProxy.tsconst { createProxyMiddleware } = require("http-proxy-middleware"); module.exports = function (app) { app.use( createProxyMiddleware("/api", { target: "http://localhost:3095", changeOrigin: true, }) ); }; package.json// 위에 생략... "scripts": { "start": "react-scripts start", "build": "react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject" }, "proxy": "http://localhost:3095/", // 아래 생략... 여기서 궁금한 점이.. proxy를 설정할 때 미들웨어를 설치하여 setupProxy.js 파일을 만들어서 사용하라는 글들을 많이 봐서 그대로 따라하고 파일명만 ts로 변경했었습니다. 이렇게 하니 api를 불러오는 url 부분에 localhost:3095~~~ 이 부분을 전부 다 입력해야 에러가 나지 않았고 생략해서 사용하려면 package.json에 proxy 경로를 추가하는 방법밖에는 없는걸까요??(미들웨어 설치 + setupProxy.ts 파일로만 proxy 설정을 해보고 싶었는데 이 경우에는 api url 불러오는 부분에 locallhost~~~... 를 쓸 수 밖에 없는지가 궁금합니다.) 다만.. package.json에 proxy 경로를 넣어놓고 setupProxy.ts 파일의 코드를 지워도 제대로 돌아가더라구요.. setupProxy.ts 파일을 잘 못 만든걸까요? 이때 돌아가는 이유가 package.json의 proxy 경로로만 인식을 한 것 같습니다..https://www.npmjs.com/package/http-proxy-middleware 마지막으로 위 proxy 설정 파일을 해주면 cors 오류가 발생하지 않는 것 같은데 둘중 하나만 설정을 해주는 것이 맞을까요? 둘다 해줘야 하는건지.. 프론트에서 proxy만 하거나 백에서 cors를 설치하는 방향 둘중에 뭐가 더 나은 방향인지도 궁금합니다!원래는 아래 cors 설치하고 아래 코드까지 작성 해놨었습니다.main.ts(back 폴더안)import { NestFactory } from '@nestjs/core'; import { AppModule } from './app.module'; import cors = require('cors'); async function bootstrap() { const app = await NestFactory.create(AppModule); app.use(cors()); await app.listen(process.env.PORT); console.log(`listening on port ${process.env.PORT}`); } bootstrap();
-
해결됨데이터 분석 SQL Fundamentals
postgresql 설치 오류
안녕하세요. 프로그램 설치시 하기 오류가 뜨는데요..There has been an error :The enviromental variable COMSPEC does not seem to print to the cmd.exe or there is a trailling semicolon present.인터넷 참조해서 방화벽도 없애보고 했는데 설치가 안되어서 글을 남깁니다. 배워볼려고 하는데 설치부터 안되니 답답합니다.
-
해결됨유니티 머신러닝 에이전트 완전정복 (기초편)
싱글에이전트 코드를 멀티에이전트 코드로 수정 관련
안녕하세요.좋은 강의 올려주셔서 항상 감사하게 보고 있습니다.파이썬 코드로 학습 코드를 작성할때 싱글에이전트만 고려한다고 하셨는데 멀티에이전트를 위한 코드를 작성하려면 바뀌는 부분이 많이 있나요?멀티에이전트를 위해서 코드를 수정한다면 참고할 수 있는 자료가 있을까요?적용하고 싶은 알고리즘은 ppo 입니다.감사합니다!
-
해결됨모의해킹 실무자가 알려주는, 파일 다운로드 취약점 공격 기법과 실무 사례 분석
12강 직접 제작하면서 배우는 JSP 기반의 파일 다운로드 기능에 대한 이해 강의에 관한 질문 입니다.
질문 사항은 크게 2가지가 있는 상황 입니다.download1.jsp를 동작시키기 위해 index.jsp의 download1.jsp를 클릭하거나, http://localhost:8000/down/download1.jsp?org_filename=test.jpg&real_filename=1234.jpg을 직접 입력해도 '파일명을 입력 되지 않았습니다.' 라는 에러가 발생합니다.[에러 이미지]download1.jsp를 수정하고 wamp를 재시작해도 수정된 jsp 코드가 적용되지 않습니다. 먼저 1번 질문에 관한여 설명 드리갰습니다.[download.jsp 코드](참고!! ';'다음에 주석 처럼 보이는 것들도 실제 코드 입니다.예) ;history.back(-1);</script>"); 가 주석처럼 표시 되었는데, 실제로 동작하는 코드 입니다.)<%@ page contentType="text/html; charset=UTF-8" %> <%@ page import="java.util.*, java.io.*"%> <% FileInputStream fis = null; BufferedInputStream bis = null; BufferedOutputStream bos = null; String path = "C:\\Bitnami\\wampstack-8.1.4-0\\apache2\\htdocs\\down\\upload\\image\\"; String org_filename = request.getParameter("org_filename"); String real_filename = request.getParameter("real_filename"); if(org_filename == null || real_filename == null){ out.println("<script>alert('파일명이 입력 되지 않았습니다.');history.back(-1);</script>"); return; } try{ File fd = new File(path + real_filename); if(!fd.exists()){ out.println("<script>alert('파일이 존재 하지 않습니다.');history.back(-1);</script>"); return; } response.setHeader("Content-Type", "application/octect-stream"); response.setHeader("Content-Disposition", "attachment; filename=" + org_filename); fis = new FileInputStream(fd); bis = new BufferedInputStream(fis); bos = new BufferedOutputStream(response.getOutputStream()); byte[] buffer = new byte[1024]; int i = 0; while((i=(bis.read(buffer)))!= -1){ bos.write(buffer, 0, i); } bos.flush(); } finally{ if(fis != null) fis.close(); if(bis != null) bis.close(); if(bos != null) bos.close(); } %>-> 현재 저는 이전 XSS 강의 때 사용한 bitnami 웹 서버를 이용하기 때문에 path의 URL 주소가 강사님의 하신 것과 다릅니다. [path위치에 image파일이 존재]--> 현재 path에 적어 넣은 경로인 C:\\Bitnami\\wampstack-8.1.4-0\\apache2\\htdocs\\down\\upload\\image\\ 아래에도 test.jpg 이미지를 넣은 상태 입니다. 그런데 브라우져에서 index.jsp에서--> 첨부파일1: 다운로드 링크를 누르면--> 맨 처음 질문에 이미지에서 확인 할 수 있듯이--> org_filename과 real_filename을 모두 URL에 입력 되었는데도, '파일명이 입력되지 않았습니다. ' 라는 경고 문이 발생합니다. 그래서 저는 URL에 직접 파일명을 입력하여 파일 다운로드를 시도 해 보았지만, 위와 동일한 에러 메시지만 확인 할 수 있었습니다. 제가 어떤 설정을 잘못 하였는지 알려주시면 수정하여 시도해 보도록 하겠습니다. 이제 질문2번에 대한 설명을 하겠습니다.--> 코드가 정상적으로 동작하지 않은 원인을 찾기 위해 out.println 코드를 중간 중간에 넣었습니다.--> 그리고 수정한 코드가 적용 되게 하기 우해 wamp를 재시작하였습니다.--> WAMP 모니터에서 apache web server를 재시작하였지만--> 여전히 파일명이 입력 되지 않았다는 경고 창과, 파일이 존재하지 않는다는 경고 창만 확인 가능하며, 제가 중간에 새로 삽입한 코드 경고 창은 확인 할수 없습니다.--> 해당 내용에 대해서도 답변이 가능한지 궁금합니다.
-
해결됨OpenStack을 활용한 클라우드 환경 구축하기
강의 잘 듣고 있습니다. 자료는 어디서 받을 수 있나요
수업자료는 어디에 있는가요?openstack 수동설치 강의도 개강해주세요
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
9장] C code에서 간단한 질문
안녕하세요, 강의 21:40초 경 사용되는 함수들에 대한 질문입니다: write에서는 Xil_Out32, read에서는 Xil_In32라는 함수가 쓰이고 있습니다. 눌러본 결과 동작은 확인할 수 있었습니다.Q: 해당 함수들은 처음에 include한 xil_io.h 파일에 포함된 함수들인데요, 이러한 파일도 자동으로 생성된 것이라고 생각됩니다. 이러한 함수들은 vivado에서 export할 때 자동으로 만들어지는 것인가요? 즉 작성한 HDL코드와 동일한 동작을 할 수 있도록 C code들이 생성되어있는 것인가요?감사합니다!
-
미해결리눅스 입문 - 개념으로 탄탄히!!
chmod 앞에 $의 유무는 어떤 차이가 있나요 ??
chmod 644 [filename]$chmod [ugoa(+/-)rwx] [filename] chmod 커맨드 설명해주실 때, 의미표기법을 설명하실 때는 $을 사용하셨고, 8진표기법을 사용할 때는 $이 없었습니다,, 둘 간의 어떤 차이가 있는건가용 ??
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
다이어트 메모 앱 만들기 성공했습니다
적응이 않되어 복잡하게 보이네요 하지만 반복연습해 보겠습니다강사님 건강하시고 부자되세요
-
미해결스프링과 JPA 기반 웹 애플리케이션 개발
SecurityConfig의 WebSecurityConfigurerAdapter 가 deprecated 되어 아래와 같이 코드를 수정하였는데 괜찮을까요?
안녕하세요 강의 잘 듣고 있습니다.해당 수업을 들으면서 코드를 직접 작성을 하고 있었는데 SecurityConfig의 WebSecurityConfigurerAdapter 가 deprecated가 되어서 인식이 안됬습니다.그래서 커뮤니티를 통해 어떤 오류가 났는지 다른 회원님의 글을 보고 알게 되어 해당 코드를 인용했음에도 오류가 발생하여 아래와 같이 코드를 수정을 했는데 괜찮을까요? package com.studyolle.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.web.SecurityFilterChain; import org.springframework.security.web.servlet.util.matcher.MvcRequestMatcher; import org.springframework.security.web.util.matcher.RequestMatcher; import org.springframework.web.servlet.handler.HandlerMappingIntrospector; @Configuration //스프링 설정 클래스 @EnableWebSecurity //웹 보안 활성화, 웹 보안 설정 재정의 public class SecurityConfig { @Bean SecurityFilterChain filterChain(HttpSecurity http, HandlerMappingIntrospector introspector) throws Exception { RequestMatcher[] matchers = { new MvcRequestMatcher(introspector, "/"), new MvcRequestMatcher(introspector, "/login"), new MvcRequestMatcher(introspector, "/sign-up"), new MvcRequestMatcher(introspector, "/check-email"), new MvcRequestMatcher(introspector, "/check-email-token"), new MvcRequestMatcher(introspector, "/email-login"), new MvcRequestMatcher(introspector, "/check-email-login"), new MvcRequestMatcher(introspector, "/login-link"), new MvcRequestMatcher(introspector, "/profile/*") }; //보안 요청에 대한 권한 및 역활 설정 http.authorizeRequests() //배열에 있는 경로들에 대한 모든 요청을 허용 .requestMatchers(matchers).permitAll() //지저오딘 경로외의 모든 요청은 인증된 사용자만 접근할 수 있도록 함 .anyRequest().authenticated(); // POST에 대한 별도 조건을 설정하려면 추가 코드 필요 return http.build(); } }
-
미해결ChatGPT API 입문 강의 - 30분 만에 다국어 번역기 웹 풀스택 개발하기
긴 문장을 번역하고 싶습니다!
강사님 안녕하세요. 덕분에 강의도 잘 듣고, 개인 번역사이트도 만들어서 너무 기쁩니다. 다름이 아니라, 어느 정도 긴 문장을 넣었을 때도 번역이 되려면 어떻게 코드를 짜야 하나요?예를 들어, 영어로 1400단어 정도로 넣고, 한글로 번역을 실행하면, 한국어로 번역해서 대답해주다가 어느 중간에 끊겨서 출력이 됩니다.max_tokens 값을 500에서 5000으로 크게 바꾸어 보아도, 대답해 주는 문장 길이는 변하지 않았습니다. ㅠㅠ
-
미해결[2025년 출제기준] 웹디자인기능사 실기시험 완벽 가이드
혼자해보고 안되서 찾아보고 해도 해결안되서 문의합니다
<!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <title>d터압 새로 2칼럼 d-1</title> <link rel="stylesheet" href="css/d-1.css"> </head> <body> <div class="container"> <div class="main-content"> <div class="left"> <header> <div class="header-logo"> <a href="#none"><img src="d-1images/header-logo.png" alt="header-logo"></a> </div> <div class="navi"> <ul class="menu"> <li> <a href="#none">menu-1</a> <div class="sub-menu"> <a href="#none">sub-menu1</a> <a href="#none">sub-menu2</a> <a href="#none">sub-menu3</a> <a href="#none">sub-menu4</a> </div> </li> <li> <a href="#none">menu-2</a> <div class="sub-menu"> <a href="#none">sub-menu1</a> <a href="#none">sub-menu2</a> <a href="#none">sub-menu3</a> <a href="#none">sub-menu4</a> </div> </li> <li> <a href="#none">menu-3</a> <div class="sub-menu"> <a href="#none">sub-menu1</a> <a href="#none">sub-menu2</a> <a href="#none">sub-menu3</a> <a href="#none">sub-menu4</a> </div> </li> <li> <a href="#none">menu-4</a> <div class="sub-menu"> <a href="#none">sub-menu1</a> <a href="#none">sub-menu2</a> <a href="#none">sub-menu3</a> <a href="#none">sub-menu4</a> </div> </li> </ul> </div> <div class="spot-menu"> <a href="#none">로그인</a> <span>|</span> <a href="#none">회원가입</a> </div> </header> </div> <div class="right"> <div class="slide"> <div class="slide-image"></div> <div class="slide-banner"> <a href="#none"><img src="d-1images/banner-01.png" alt="bannerimage1"></a> <a href="#none"><img src="d-1images/banner-02.png" alt="bannerimage2"></a> <a href="#none"><img src="d-1images/banner-03.png" alt="bannerimage3"></a> </div> </div> <div class="items"> <div class="shortcut"> <img src="d-1images/shortcut-01.png" alt="shortcutimage"> <div class="shortcut-content"> <h3> 얼리버드 선착순 할인 이벤트, 신규강의 최대 30% 할인 </h3> <p> 운영위원장 후보자 추천을 받고 있습니다. 2020.01.09 홈커밍데이 진행위원회 결과를 다운로드 받으세요. 2020.01.07 카드결제 무이자 이벤트 한시적 10월 20일까지 2019.12.31<br> 보안강화 시스템 작업 안내 공지 2019.12.20 부여 가을연꽃축제 10주년 콘서트 축제 <b>기간 : 2022년 12월 18일 ~ 12월 25일</b> </p> </div> <a href="#none"><img src="d-1images/shortcut-02.png" alt="shortcutlink"></a> </div> <div class="news-gallery"> <div class="tab-inner"> <div class="btn"> <span class="active">공지사항</span> <span>갤러리</span> <div class="tabs"> <div class="tab1"> <a href="#none">운영위원장 후보자 추천을 받고 있습니다. <b>2020.01.09</b></a> <a href="#none">홈커밍데이 진행위원회 결과를 다운로드 받으세요.<b>2020.01.07</b></a> <a href="#none">카드결제 무이자 이벤트 한시적 10월 20일까지<b>2019.12.31</b></a> <a href="#none">보안강화 시스템 작업 안내 공지 <b>2019.12.20</b></a> <a href="#none">부여 가을연꽃축제 10주년 콘서트 축제 <b>2019.12.20</b></a> </div> <div class="tab2"> <a href="#none"> <img src="d-1images/gallery-01.png" alt="gallery-01"> </a> <a href="#none"> <img src="d-1images/gallery-02.png" alt="gallery-02"> </a> <a href="#none"> <img src="d-1images/gallery-03.png" alt="gallery-03"> </a> <a href="#none"> <img src="d-1images/gallery-04.png" alt="gallery-04"> </a> <a href="#none"> <img src="d-1images/gallery-05.png" alt="gallery-05"> </a> <a href="#none"> <img src="d-1images/gallery-06.png" alt="gallery-06"> </a> <a href="#none"> <img src="d-1images/gallery-07.png" alt="gallery-07"> </a> </div> </div> </div> </div> </div> </div> </div> </div> <footer> <div class="footer-logo"> <a href="#none"><img src="d-1images/footer-logo.png" alt="footerlogo"></a> </div> <div class="copyright"> 상호 : 엣지컴퍼니 | 대표자 : 홍길동 | 개인정보관리책임자 : 장길산 차장 사업장주소 : 서울특별시 강남구 테헤란로 123-56 </div> <div class="sns"> <a href="#none"><img src="d-1images/sns-01.png" alt="sns1"></a> <a href="#none"><img src="d-1images/sns-02.png" alt="sns2"></a> <a href="#none"><img src="d-1images/sns-03.png" alt="sns3"></a> </div> </footer> </div> <script src="js/jquery-1.12.4.js"></script> <script src="js/custom.js"></script> </body> </html> @charset "UTF-8"; body{ margin: 0; background-color: #fff; color: #333; font-size: 15px; } a{ list-style: none; text-decoration: none; color: inherit; } .container{} .main-content{ display: flex; } .main-content > div{ border: 1px solid #000; } .left{ width: 200px; } .right{ flex: 1; } header{} header> div{ } .header-logo{ height: 100px; } .navi{ height: 400px; } /*navigation*/ .menu{ list-style: none; padding: 0; margin: 0; width: 95%; margin: auto; margin-top: 15px; } .menu li { } .menu li > a { display: block; border: 1px solid #000; text-align: center; padding: 5px; transition: 0.5s; } .menu li:hover > a{ background-color: rgba(0, 0, 0, 0.2); color: #fff; } .sub-menu{ display: none; } .sub-menu a{ display: block; text-align: center; padding: 5px; transition: 0.5s; } .sub-menu a:hover{ background-color: rgba(0, 0, 0, 0.2); color: #fff; } .spot-menu{ height: 50px; text-align: center; } .spot-menu a:hover{ text-decoration: underline; } .slide{ height: 400px; } .slide-image{ border: 1px solid #000; height: 400px; } .slide-banner img{ width: 150px; display: block; } .slide-banner{ border: 1px solid #000; position: absolute; top: 0; right: 10px; } .items{} .items > div{ border: 1px solid #000; } .shortcut{ height: 250px; display: flex; align-items: center; margin: 0 15px; gap: 50px; } /*news-gallery*/ .news-gallery{ height: 250px; } .tab-inner{ width: 90%; margin: auto; margin-top: 5px; } .tab-inner .btn{} .btn span{ border: 1px solid #000; width: 150px; padding: 5px; display: inline-block; text-align: center; border-radius: 10px 10px 0 0; margin-right: -6px; border-bottom: none; margin-bottom: -1px; background-color: #eee; cursor: pointer; } .btn span.active{ background-color: #fff; } .tabs{ border: 1px solid #000; padding: 0px 15px; } .tabs>div{ } .tab1{} .tab1 a{ display: block; padding: 10px; border-bottom: 1px solid #000; } .tab1 a:last-child{ border-bottom: none; } .tab1 a b{ float: right; font-weight: normal; } .tab2{} .tab2 img{ display: none; width: 200px; } footer{ display: flex; height: 100px; align-items: center; } footer > div{ text-align: center; } .footer-logo{ width: 200px; } .copyright{ flex: 1; padding-top: 35px; box-sizing: border-box; } .sns{ width: 230px; } .sns img{ width: 70px; border-radius: 5px; } /*navigation*/ $('.menu li').mouseenter(function(){ $(this).children('.sub-menu').stop().slideDown() }) $('.menu li').mouseleave(function(){ $(this).children('.sub-menu').stop().slideUp() }) /*tab-inner*/ $('.btn span:first-child').click(function(){ $('.tab1').show() $('.tab2').hide() $(this).addClass('active') $(this).siblings().removeClass('active') }) $('.btn span:last-child').click(function(){ $('.tab2').show() $('.tab1').hide() $(this).addClass('active') $(this).siblings().removeClass('active') })탭메뉴부분이 .btn a 로 하면 탭메뉴들이 다망가져서 .btn > a했다가 아닌거같아서 span 으로했는데 제이쿼리가 안먹히는데요 또 난감한 질문드려서 죄송하네요,,선생님 저도 결제해서 강의보는데 모르는거있어서 하다가 안되서 문의글올린겁니다 그리고 초보인데 당연히 제가 맞는지안맞는지 틀렷는지도 궁금한거고요 .. 질문을 많이해서 지적받은거는 조금 그렇네요 결제해서강의보는데 배울려면 제대로배워야할거같아서 안되는거 봐달라고한건데 물론 제가 좀 많이 남겨놔서 죄송하다고도 했지만 하다가 막혀서 선생님 답변보고 질문할까말까 스트레스도받고 망설여지네요 혼자해도 안되서 도움의손길을 요청하는건데 댓글보고 조금 질문하기도 불편해졌네요 이번주시험이라 예민하기도하고 진도는안나가지고 마음만 급해져서 문의많이했습니다 귀찮게 해드려서 죄송하네요