묻고 답해요
150만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
순위 정보를
불러오고 있어요
-
미해결ASP.NET Core MVC +ASP.NET Core +REST API +.NET 8.0
DB에서 조회된 다건의 데이터를 처리할 때
안녕하세요 강사님저 강의를 다회차 보면서 궁금한 점이 생겨서요.기존 코드 public async Task<GetUserResponseDTO> GetUser(GetUserDTO getUserDTO) { var configuration = new MapperConfiguration(cfg => { }); //Response..DTO 생성후 Controller로 전달 // Perform mapping Mapper mapper = new Mapper(configuration); Dictionary<string, object> dc=mapper.Map<GetUserDTO,Dictionary<string, object> >(getUserDTO); dc.Remove("Password"); ProcCall procCall= new ProcCall(); DataTable dt = await procCall.RequestProcedure("sp_login", dc); GetUserResponseDTO dto = new GetUserResponseDTO(); dto.Id = (int)dt.Rows[0]["id"]; dto.Userid = dt.Rows[0]["userid"].ToString(); dto.Username = dt.Rows[0]["Username"].ToString(); dto.Point = (int)dt.Rows[0]["Point"]; return dto; }로그인 서비스의 관련하여 dto의 담기는 오브젝트가 적고 단 건이라 이러한 방식으로 처리가 가능한 것 같습니다. 해당 부분의 활용하여 다건의 데이터를 처리하기는 어려울 것 같은데 어떤 방식이 있는지 확인 가능할까요??
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
비대칭 암호화를 사용하는 이유
강의 내용에서는 통합된 키로 암호화와 복호화를 하고 있어, 사실상 대칭 키와 같은 방법이라고 느껴집니다. 강의 내용에서는 비대칭 암호화의 필요성을 못느끼는데 스프링 클라우드 컨피그서버에서 비대칭 암호화에 대한 필요성과 사용하는 이유는 무엇인가요?
-
미해결ASP.NET Core MVC +ASP.NET Core +REST API +.NET 8.0
cshtml.css, cshtml.cs 비하인드 코드 추가 방법
아래와 같이 css를 추가 했는데 적용이 되지 않습니다.asp.net core mvc로 했을 때 아래와 같이 추가를 하면 적용이 되는데 asp.net core 비어있음으로 생성 후 아래와 같이 추가를 하면 동작이 되지 않아요cshtml.css, cshtml.cs를 추가하고 싶으면 어떻게 해야 하나요? 관련 강의도 추가를 해주시면 감사하겠습니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
혹시 정적 팩토리 메서드에 대해 의견을 물어도 괜찮을까요??
안녕하세요 선생님!프로젝트 코드를 작성하던 중 클라우드와 직접적인 상관이 있는 부분은 아니지만 현직자의 시각에서 정적 팩토리 메서드에 대한 의견을 묻고 싶어서 질문 드립니다..! 혹 선생님께서는 정적 팩토리 메소드의 역할이 어디까지라고 생각하실까요?저는 팩토리 메소드이기 때문에 1. 단순히 파라미터를 받아 생성자를 통해 인스턴스를 생성하는 것 뿐만 아니라, 인스턴스를 생성하기 위해 2. 파라미터 valiation을 확인하고, 인스턴스 생성을 위한 데이터들을 가공하는 과정 또한 포함해도 괜찮은 것이 아닌가 하였는데,저와 다른 의견 중에서는 팩토리 메소드는 가공이 전부 완료된 값을 단순히 받아서 인스턴스를 new 하기만 해야 한다는 의견이 있더라구요. 가공은 서비스 클래스에서 수행하구요! 예를 들면 아래와 같은 메소드가 validation과 데이터 가공을 처리하는 팩토리 메소드의 예시입니다 :public static SearchRequest from( AnotherRequest request) { 55 //AnotherRequest 클래스로부터 SearchRequest 클래스를 생성함. if(request.get고객리스트().size() > 9) { 56 //validation? 혹은 비즈니스 로직? throw new Exception(); 57 } 58 //아래부터 데이터 가공 List<Passenger> 새로운 고객리스트 = request.get고객리스트().stream() 59 .map(p -> new Passenger(p.get생일(), p.get성별()) ) 60 .collect(Collectors.toList()); 61 62 //인스턴스 생성 후 return return new SearchRequest(새로운 고객리스트); 63 } 코드 스타일에 따라 정답은 없겠지만, OOP의 입장에서 의견을 여쭙고자 합니다! 답변 해주시면 정말 감사하겠습니다!
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
로그인 후에도 403 에러가 뜹니다.
안녕하세요강의를 진행하던 도중 로그인 후에 jwt는 제대로 발급이 되는데 그 후 발급된 토큰을 사용하여 user-service에 접근을 시도하면 403오류가 뜹니다. 강의대로 제대로 잘 했는데 무엇이 문제인지 모르겠습니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
스프링 부트 종료 시 오류
안녕하세요 강의를 수강하던 도중 Eureka에 연결해 놓은 프로젝트를 종료하면 모든 프로젝트에서 아래와 같은 에러가 발생합니다해결방안이 있을까요? 2024-05-28T23:22:04.304+09:00 INFO 42143 --- [apigateway-service] [ionShutdownHook] o.s.c.n.e.s.EurekaServiceRegistry : Unregistering application APIGATEWAY-SERVICE with eureka with status DOWN2024-05-28T23:22:04.304+09:00 INFO 42143 --- [apigateway-service] [ionShutdownHook] com.netflix.discovery.DiscoveryClient : Saw local status change event StatusChangeEvent [timestamp=1716906124304, current=DOWN, previous=UP]2024-05-28T23:22:04.304+09:00 DEBUG 42143 --- [apigateway-service] [nfoReplicator-0] c.n.discovery.InstanceInfoReplicator : Executing on-demand update of local InstanceInfo2024-05-28T23:22:04.304+09:00 DEBUG 42143 --- [apigateway-service] [nfoReplicator-0] c.n.discovery.InstanceInfoReplicator : Canceling the latest scheduled update, it will be rescheduled at the end of on demand update2024-05-28T23:22:04.304+09:00 INFO 42143 --- [apigateway-service] [nfoReplicator-0] com.netflix.discovery.DiscoveryClient : DiscoveryClient_APIGATEWAY-SERVICE/192.168.75.30:apigateway-service:8000: registering service...2024-05-28T23:22:04.309+09:00 INFO 42143 --- [apigateway-service] [nfoReplicator-0] com.netflix.discovery.DiscoveryClient : DiscoveryClient_APIGATEWAY-SERVICE/192.168.75.30:apigateway-service:8000 - registration status: 2042024-05-28T23:22:06.396+09:00 INFO 42143 --- [apigateway-service] [ionShutdownHook] com.netflix.discovery.DiscoveryClient : Shutting down DiscoveryClient ...2024-05-28T23:22:09.402+09:00 INFO 42143 --- [apigateway-service] [ionShutdownHook] com.netflix.discovery.DiscoveryClient : Unregistering ...2024-05-28T23:22:09.410+09:00 INFO 42143 --- [apigateway-service] [ionShutdownHook] c.n.d.s.t.d.RedirectingEurekaHttpClient : Request execution error. endpoint=DefaultEndpoint{ serviceUrl='http://localhost:8761/eureka/} exception=Connection pool shut down stacktrace=java.lang.IllegalStateException: Connection pool shut down 중략... 2024-05-28T23:22:09.413+09:00 INFO 42143 --- [apigateway-service] [ionShutdownHook] c.n.d.s.t.d.RedirectingEurekaHttpClient : Request execution error. endpoint=DefaultEndpoint{ serviceUrl='http://localhost:8761/eureka/}, exception=Connection pool shut down stacktrace=java.lang.IllegalStateException: Connection pool shut down 중략... 2024-05-28T23:22:09.413+09:00 WARN 42143 --- [apigateway-service] [ionShutdownHook] c.n.d.s.t.d.RetryableEurekaHttpClient : Request execution failed with message: Connection pool shut down2024-05-28T23:22:09.413+09:00 ERROR 42143 --- [apigateway-service] [ionShutdownHook] com.netflix.discovery.DiscoveryClient : DiscoveryClient_APIGATEWAY-SERVICE/192.168.75.30:apigateway-service:8000 - de-registration failedCannot execute request on any known servercom.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server 중략... 2024-05-28T23:22:09.420+09:00 INFO 42143 --- [apigateway-service] [ionShutdownHook] com.netflix.discovery.DiscoveryClient : Completed shut down of DiscoveryClientProcess finished with exit code 130 (interrupted by signal 2:SIGINT)
-
해결됨ASP.NET Core MVC +ASP.NET Core +REST API +.NET 8.0
로그인에서 받아온 Session을 활용하고 자 할 때
안녕하세요 선생님자주... 문의드려 죄송합니다.로그인에서 가져온 Session 값을 활용하는 방법DAL 부분의 활용 여부로그인에서 가져온 Session 값을 활용하는 방법 public async Task<IActionResult> GetUser(GetUserDTO getUserDTO) { if (ModelState.IsValid) { } else { return Redirect("/login/SearchUserId"); } GetUserResponseDTO dto = await loginService.GetUser(getUserDTO); HttpContext.Session.Set("LoginUser", dto); return Redirect("/home/index"); } "LoginUser"으로 세션값을 사용하는 것은 이해했습니다. controller public async Task<IActionResult> GetUserList () { if (ModelState.IsValid) { } else { return Redirect("/home/UserList"); } GetUserResponseDTO ? user = HttpContext.Session.Get<GetUserResponseDTO>("LoginUser"); GetUserListResponseDTO dto = await UserListService.GetUserList(); return Redirect("/home/index"); }service public async Task<GetUserListResponseDTO> GetUserList(GetUserListDTO getUserListDTO) { var configuration = new MapperConfiguration(cfg => { }); Mapper mapper = new Mapper(configuration); Dictionary<string, object> dc = mapper.Map<GetUserListDTO, Dictionary<string, object>>(getUserListDTO); ProcCall procCall = new ProcCall(); DataTable dt = await procCall.RequestProcedure("SP_UserList", dc); GetUserListResponseDTO dto = new GetUserListResponseDTO(); return dto; }구현하고자 하는 내용.로그인 해서 나온 데이터를 활용하여 조회 화면을 구성하고자 함A 등급을 가진 사람한테 -> A-1 화면만 조회하도록 구현하고자 합니다.Session 값을 가져와서 구현하고자 했는데.. 그럼 DTO를 거치면 안 될까요...? DAL 부분의 활용 여부SP_ 형식을 차용하는데 DAL.Mapper와 DAL.Model 추가적인 사용은 필요가 없을 것 같습니다...?DB와 소통하는 부분으로만 남겨도 될까요?
-
미해결ASP.NET Core MVC +ASP.NET Core +REST API +.NET 8.0
Request.Query는 배열로는 받을 수 없나요?
queryString으로 데이터를 받아오는 것에서 매개변수에 string[] datas를 해주면, datas Name을 가진 input 태그에서는 받는 값들은 이 배열에 모인다는 걸 이해 했습니다. 근데 Request.Query로는 그게 불가능한가요?
-
미해결ASP.NET Core MVC +ASP.NET Core +REST API +.NET 8.0
Single View Engine은 뭘까요?
Razor는 ASP.NET Core가 기본적으로 사용하는 Single View Engine이다라고 하셨는데요. View Engine이 뭔지는 검색으로 알았는데 single view engine은 어떤 의미로 말씀하신걸까요?
-
미해결ASP.NET Core MVC +ASP.NET Core +REST API +.NET 8.0
Results API가 뭔가요?
1강 1분 35초에 ASP.NET Core를 사용하면 웹, RESTful API, Results API 개발이 가능합니다.라고 하셨는데요. Results API가 뭔가요? 검색해도 따로 나오는게 없어서요...
-
미해결ASP.NET Core MVC +ASP.NET Core +REST API +.NET 8.0
QueryString 대소문자 구분
안녕하세요.현재 `Controller:query string을 통해 데이터 조회` 파트를 시청하고 있습니다. controller에서 userid라고 명시했을 때클라이언트는 userid 또는 userId라고 해도 QueryString이 전달됩니다. 서버에서 queryString의 대소문자를 강제하고 싶을 때는 어떻게 해야하나요?따로 controller에서 하나하나 체크해서 예외처리를 해줘야 하나요?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
강의 중간중간 쿵쿵 거리면서 강의소리 안들려요
강의 중간중간 쿵쿵 거리면서 강의소리 안들려요
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
traceId, spanId 모두 콘솔에 출력이 되는데 zipkin에는 검색되는 traceId가 하나도 없습니다. 무엇이 문제일까요?
인프런 Ai 가 아닌 강사님이 도움을 주시길 바라봅니다... 스프링부트3가 되면서 sleuth가 사용이 안 된다 하여, 강사님 깃허브에 배포된 프로젝트와 커뮤니티 게시판을 참조하여 디펜던시를 다 수정하고 테스트 하였으나 order-service와 user-service 같은 traceId가 출력이 되고, 혹시 다운받은 zipkin이 문제인가 하여 도커로 zipkin을 실행해봤으나 브라우저로 접속한 zipkin에서는 아무런 traceId가 검색이 되지 않고 어떠한 요청들도 기록이 되지 않습니다. 무엇이 문제일까요...? 스택오버플로우에 비슷한 사례들을 찾아봐서 amqp와 같이 쓰면 문제가 생긴다 이런 저런 디펜던시 추가해봐라 하는 것들을다 따라봤으나 해결이 되지 않습니다. 삼일째 이 문제에서 벗어나지 못하고 있습니다... 간곡히 도움을 부탁드립니다... 어떠한 키워드라도 좋으니 혹시 이 글을 보시는 다른 수강생분들도 도움 좀 주세요...
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
로그에 traceId, spanId 모두 잘 찍히는데 traceId로 조회가 안 됩니다.
로그에 traceId, spanId 모두 잘 찍히는데 브라우저의 zipkin에서 traceId로 조회를 하면 no trace가 뜨네요. 스프링부트 3에 맞춰서 깃허브에 올려주신 자료 참조해서 디펜던시 맞게 설정하고 yml에도 올려주신 자료대로 수정했는데 이런 문제가 생기면 어떤 부분이 잘못된 걸까요?
-
해결됨ASP.NET Core MVC +ASP.NET Core +REST API +.NET 8.0
화면 단이 아닌 서비스 단에서 파라미터 추가
안녕하세요 선생님소스에서 MSSQL로 파라미터를 전달하는 부분에 관련해서 질문드리고 싶습니다. 질문 1지금은 view 단에서 파라미터를 받아서 가져가고 있는데 서비스단에서 파라미터를 추가할 수 있는 방법이 있을까요? 제가 이전에 하위 버전의 솔루션에서 사용했던 파라미터 전송 방식입니다. internal DataTable CommonSearch(string div, string strwhere) { string sSpName = "SP_Common"; string gubun = "마스터 코드"; string[] pParam = new string[3]; pParam[0] = "@gb:" + gubun; pParam[1] = "@div:" + div; pParam[2] = "@strwhere:" + strwhere; DataTable dt = _bllSpExecute.SpExecuteTable(sSpName, gubun, pParam); return dt; }기존에는 이런 방식을 차용해서 파라미터 전송을 했는데 지금 전달 주신 부분에서는 저 구분을 어떤 방식으로 보내야 할 지 감이 안 옵니다... //로그인 뷰 public async Task<GetUserResponseDTO> GetUser(GetUserDTO getUserDTO) { // auto mapper로 {}사용하여 동적 개체 수령 var configuration = new MapperConfiguration(cfg => { }); //Response..DTO 생성후 Controller로 전달 // Perform mapping Mapper mapper = new Mapper(configuration); Dictionary<string, object> dc = mapper.Map<GetUserDTO, Dictionary<string, object>>(getUserDTO); //-----> 이 부분에 삽입해서 전달 하는 방법? ProcCall procCall = new ProcCall(); DataTable dt = await procCall.RequestProcedure("SP_Login", dc); GetUserResponseDTO dto = new GetUserResponseDTO(); dto.gubun = "S"; //dto.Id = (int)dt.Rows[0]["id"]; dto.UserId = dt.Rows[0]["UserId"].ToString(); dto.Password = dt.Rows[0]["Password"].ToString(); return dto; }여기 서비스 단에서 담아서 보낼 수 있을까요?
-
미해결ASP.NET Core MVC +ASP.NET Core +REST API +.NET 8.0
asp.net sercurity에 대한 추후 강의 계획 있으신가요?
해외 원서로 공부하고 있긴 한데, 막상 적용하려니 체감이 잘 되지 않아서요.. 혹시나 해서 질문 남깁니다.
-
해결됨ASP.NET Core MVC +ASP.NET Core +REST API +.NET 8.0
CS1963 오류
안녕하세요 강사님현재 올려주신 강의를 근간으로 현업에서 새로운 페이지를 개발중입니다...그런데 제가 뭘 잘 못 했는지 아래와 같은 오류를 계속 발생시키는데 뭐가 문제일까요..?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
Kafka 테스트.. 오류
D:\코딩\kafka_demo\kafka_2.13-3.7.0> .\bin\windows\zookeeper-server-start.bat .\config\zookeeper.properties The input line is too long. The syntax of the command is incorrect. D:\코딩\kafka_demo\kafka_2.13-3.7.0>입력 명령어가 너무 길다고 계속 오류가 나는데 버전을 낮춰야할까요..?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
MSA 환경에서 Prometheus 궁금한 점이 있습니다.
강의 잘보고 있습니다.다름이 아니라 MSA 환경에서는 한 서비스가 여러 인스턴스로 올라가있는 경우가 있는데, prometheus.yml에서 해당 인스턴스를 다 지정해주지 않아도 괜찮을까요? 또한 spring cloud gateway에서 lb://ORDER-SERVICE 형태로 로드밸런싱 처리가 되어있는데, 그렇다면 프로메테우스에서 actuator로 가져오는 데이터가 여러 인스턴스 각각 가져오는게 아닌 로드밸런싱되는데로 데이터를 가져오게 되지않나요? 호기심에 질문해봅니다.
-
미해결ASP.NET Core MVC +ASP.NET Core +REST API +.NET 8.0
해외에서는 웹 어플리케이션 개발할때 프로시저를 더많이 사용하나요?
안녕하세요. 강의를 듣다가 해외에서 프로시저를 사용하는 부분에서 궁금한점이 들어서 질문을 남깁니다.해외의 경우 웹 애플리케이션을 개발할때 전부 프로시저로 개발하거나 비중이 높은 사이트나 회사도 있나요?(범용적으로 유지보수와 가독성을 위해서 적절히 섞어서 사용한다고 알고 있습니다.)만약 프로시저 비중이 높거나 전체를 개발 된 사이트가 있다면 혹시 어떻게 생각하는지 들을 수 있을까요?(저는 별로라고 생각합니다!)
주간 인기글
순위 정보를
불러오고 있어요