묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
http 교환 방식 3가지 정리 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. Request parameterurl 에 q = 이라는 쿼리를 통해 데이터 교환GET 쿼리 파라미터방식이란게 get 방식 을 쓴다는게아니라 url 자체에서 입력된 데이터를 읽는 방식을 뜻한다고 이해하면될까요 ? 2 HTML FORMapplication/x-www-form-urlencoded 의 형식으로 메세지 바디에 포함되어서 요청되어서 데이터 교환 쿼리문을 저 형식으로 그냥 메세지 바디에 넣어서 요청한다고 생각하면 되나요 ? 3. HTTP api 방식json 이나 xml 으로 데이터 교환클라-> 서버 예를들어 postman 에서 json 파일을 보낸다 할때 json의 내용을 해석해서 데이터를 받는다서버 -> 클라 일경우 서버에서 json 을 만들면 자바스크립트 코드나 vue 나 react 같은 프레임워크를 통해 html 로 랜더링됨 이렇게 이해하면 될까요 ? 혹시 잘못 이해한 부분이나 추가해야할 부분 알려주시면 감사하겠습니다
-
미해결스프링부트 시큐리티 & JWT 강의
이론강의
안녕하세요OAuth이론강의는 어디에있는지알수잇을까요?
-
미해결실전! 스프링 데이터 JPA
DB,검증코드 에서는 member가 다른팀을 가지고있으나 soutv에서 같은팀을 가지고있다고 하는문제
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 네2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 네3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.member = Member(id=1, username=member1, age=10)member.getTeam() = Team(id=1, name=teamA)memberList = [Member(id=1, username=member1, age=10), Member(id=2, username=member2, age=20)]member = Member(id=2, username=member2, age=20)member.getTeam() = Team(id=1, name=teamA)memberList = [Member(id=1, username=member1, age=10), Member(id=2, username=member2, age=20)]member = Member(id=3, username=member3, age=30)member.getTeam() = Team(id=1, name=teamA)memberList = [Member(id=3, username=member3, age=30), Member(id=4, username=member4, age=40)]member = Member(id=4, username=member4, age=40)member.getTeam() = Team(id=1, name=teamA)memberList = [Member(id=3, username=member3, age=30), Member(id=4, username=member4, age=40)]이부분이 soutv 프린트결과입니다.이부분부터 테스트코드인데요 여기서분명히 팀을 다르게넣어주었고 실제로 db에도 적용되어있습니다.@Test @DisplayName("entity test") void entityTest() { Team team = new Team("teamA"); Team teamB = new Team("teamB"); em.persist(team); em.persist(teamB); Member member = new Member("member1",10,team); Member member1 = new Member("member2",20,team); Member member2 = new Member("member3",30,teamB); Member member3 = new Member("member4",40,teamB); em.persist(member); em.persist(member1); em.persist(member2); em.persist(member3); List<Member> members = em.createQuery("select m from Member m", Member.class).getResultList(); for (Member memberList : members) { System.out.println("member = " + memberList); System.out.println("member.getTeam() = " + member.getTeam()); System.out.println("memberList = " + memberList.getTeam().getMembers()); } Assertions.assertThat(member.getTeam()).isEqualTo(team); Assertions.assertThat(member1.getTeam()).isEqualTo(team); Assertions.assertThat(member2.getTeam()).isEqualTo(teamB); Assertions.assertThat(member3.getTeam()).isEqualTo(teamB); } 어떤게 문제인지모르겠어서 질문남깁니다!entity code 도 남기겠습니다.package study.datajpa.entity; import jakarta.persistence.*; import lombok.*; @Entity @Getter @Setter @NoArgsConstructor(access = AccessLevel.PROTECTED) @ToString(of = {"id","username","age"}) public class Member { @Id @GeneratedValue @Column(name = "member_id") private Long id; private String username; private int age; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "team_id") private Team team; public Member(String username) { this.username = username; } public void memberTeamSetting(Team team) { if (this.team != null) { this.team.getMembers().remove(this); } this.team = team; team.getMembers().add(this); } public Member(String username, int age, Team team) { this.username = username; this.age = age; if(team != null) { memberTeamSetting(team); } } } package study.datajpa.entity; import jakarta.persistence.*; import lombok.*; import java.util.ArrayList; import java.util.List; @Entity @Getter @Setter @NoArgsConstructor(access = AccessLevel.PROTECTED) @ToString(of = {"id","name"}) public class Team { @Id @GeneratedValue @Column(name = "team_id") private Long id; private String name; @OneToMany(mappedBy = "team") private List<Member> members = new ArrayList<>(); public Team(String name) { this.name = name; } }
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
build.gradle 관련 오류[Unable to load class 'org.gradle.api.plugins.MavenPlugin'.]
현재 제 프로젝트 설정은 아래 3장 사진과 같습니다.도대체 무슨 이유 때문에 build.gradle에서 자꾸 에러가 발생하는 걸까요?spirng application은 정상 실행되는 상황입니다. build.gradle에서만 저런 오류가 나옵니다.
-
미해결스프링 핵심 원리 - 고급편
여러 어드바이저
[질문 내용]1. 포인트 컷이 같으면 타겟이 같으므로 하나의 프록시에 여러가지 어드바이저가 적용되지만 포인트 컷이 다르다면(execution이 다름) 각기 다른 프록시가 생성이 되는건가요?2. 수업 내용 중 execution을 hello.proxy.aop 하위의 클래스들로 포인트 컷 설정해도 Service, Reposioty 마다 각기 다른 타켓으로 간주하고 세부 포인트컷이 다르고 같은 어드바이스를 가진 어드바이저가 생성되고 Service, Reposioty마다 각기 다른 프록시가 생성이 되는건가요?
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
컨트롤러에서 호출하는 서비스 질문드립니다.(+더티체킹)
안녕하세요 항상 양질의 강의 해주셔서 먼저 감사드립니다. 현재 코드 작성 중에 어떤게 더 나은 방법인지 궁금해서 문의드립니다.카드 충전하는 서비스가 있다고 가정하면 컨트롤러를 통해 카드 충전 서비스를 호출할 예정입니다.class Controller { private final ChargeService chargeService; void charge() { chargeService.charge(); } }위와 같이 충전 진행 시, 내부에서는 카드를 찾고 외부 API를 통해 충전을 진행 후 더티체킹을 통해 카드 상태를 업데이트 할 예정입니다.class ChargeService { private final CardFindService cardFindService; private final ChargeHistoryService chargeHistoryService; void charge() { var card = cardFindService.findCard(); cardApiService.charge(); // 외부 API 호출 chargeHistoryService.save(); // 충전 내역 저장 card.updateStatus(); // 카드 상태 변경 } }여기서 궁금한게 충전을 진행하는 ChargeService 내에서 더티체킹을 통해 카드의 상태를 업데이트 하는게 좋을지, 아니면 컨트롤러단에서 ChargeService와 CardUpdateService를 각각 호출해주는게 좋을까요?class Controller { private final ChargeService chargeService; private final CardUpdateService cardUpdateService; void charge() { chargeService.charge(); cardUpdateService.updateCardStatus(); } }OSIV를 꺼둔 상태에서 진행 시 chargeService 내 하나의 트랜잭션 내에서 충전 내역과 카드 상태까지 업데이트를 하는게 편리해 보이긴 하지만, chargeService 내에서 카드의 상태를 업데이트하는 역할까지 주어지는 것 같아 고민이 됩니다. 만약 서비스 2개를 각각 호출하게 되면 cardFind도 각 서비스 내에서 1회 씩 총 2번 호출되는 점도 마음에 걸립니다.이와 같은 상황에서는 어떤 방식이 실무에 더 적합하고 좋을지 의견 부탁드리겠습니다.감사합니다.
-
미해결스프링 시큐리티 완전 정복 [6.x 개정판]
AuthenticatedAuthorizationManager 흐름도 질문
RequestMatcher가 Request와 매칭되는지 확인결과가 Y라면, entry를 호출해 authorizationManager를 통해 인가 체크.결과가 N이라면, 다음 RequestMatcherEntry의 RequestMatcher를 살펴보는 거 아닌가요?흐름도에는 N인데 바로 AccessDeniedException이 터진다고 되어있는데..
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
yml 과 properties의 차이가 큰가요?
현재 MemberRepository test를 진행하고 있습니다.데이터베이스 같은 경우는 mysql로 진행을 하고 있습니다.properties를 사용할 경우에는 테스트가 성공적으로 진행되는데 yml로 테스트를 진행할 경우 jdbc에서 dialect를 인식하지 못하거나 BeanCreationException 오류가 생깁니다. 분명 둘다 시스템 설정을 저장하는 파일인데 왜 이런 차이가 생기나 궁금해서 질문 남깁니다
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
spring.servlet.multipart.enabled=false 코드로 인해 멀티파트 처리를 못 하게 되는 시점에 대해 궁금한 점이 있습니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]logging.level.org.apache.coyote.http11=trace spring.servlet.multipart.enabled=false이렇게 설정한 상태에서 서버를 띄운 후,http://localhost:8080/servlet/v1/upload에서상품명엔 itemA, 파일엔 image.png를 선택해서 제출 버튼을 누르면log.info("itemName = {}", itemName); log.info("parts = {}", parts);이 로그의 결과는 강의에서와 똑같이 null, []입니다. 그런데 logging.level.org.apache.coyote.http11=trace이 코드로 인해 찍힌 로그에선 itemA와 image.png와 관련된 로그가 찍힙니다. 이 이유에 대해 강의 내용과 관련지어서 추측해 보았는데, 이 로그들은 아래 과정 중에서HTTP 요청 -> WAS -> 필터 -> 서블릿 -> 스프링 인터셉터 -> 컨트롤러요청이 처음으로 'WAS' 단계에 있을 땐 멀티파트 체크를 하기 전이기 때문에 itemA, image.png 관련 로그가 찍히는 것이고, 요청이 처음으로 '서블릿' 단계에 들어간 순간부터는, DispatcherServlet의 doDispatch() 코드에서 멀티파트 체크를 하는데, 만약 spring.servlet.multipart.enabled=false 코드가 있으면 RequestFacade 객체가 반환되면서 멀티파트 관련 처리를 하지 못하는 상태가 되는 거로 이해했습니다.제 생각을 요약하면,멀티파트 요청이 처음으로 'WAS' 단계와 '필터' 단계를 거칠 땐 itemA, image.png 관련 로그를 찍을 수 있고,멀티파트 요청이 처음으로 '서블릿' 단계에 들어가 DispatcherServlet에서 멀티파트 체크를 한 이후부터는 멀티파트 관련 처리가 불가능해진다고 생각했습니다.즉, spring.servlet.multipart.enabled=false 코드를 썼더라도, 필터 단계에서라면 itemA, image.png 관련 처리를 할 수 있을 줄 알았습니다.이 부분을 직접 테스트하기 위해 다음 코드들을 새로 작성했습니다.upload 패키지 하위에 filter 패키지를 만들고, LogFilter를 만들었습니다.String itemName = httpRequest.getParameter("itemName"); log.info("Filter itemName = {}", itemName);이 코드를 통해 itemA 관련 내용을 볼 수 있을 거라고 예상했습니다.그리고 upload 패키지 하위에 WebConfig 파일을 만들어서 필터를 등록했습니다.이 상태에서 서버를 띄운 후, itemA와 image.png로 제출했더니..~~~~LogFilter : Filter itemName = null저는 itemA이 나올 거라 예상했었는데 null이 나옵니다. 생각해 보니 LogFilter의 다음 코드에서HttpServletRequest httpRequest = (HttpServletRequest) request;HttpServletRequest로 할 게 아니라, StandardMultipartHttpServletRequest httpRequest = (StandardMultipartHttpServletRequest) request;이렇게 바꾸면 되지 않을까 싶어서 다시 실행해 봤습니다. 그런데 이번엔 localhost:8080에 들어가기만 해도 500 에러가 뜹니다.에러가 뜨는 이유가 궁금합니다. 제가 생각했던 대로라면spring.servlet.multipart.enabled=false이 코드가 있다고 하더라도,WAS -> 필터 -> 서블릿 -> 스프링 인터셉터 -> 컨트롤러여기서 WAS, 필터까지는 itemA를 출력할 수 있을 줄 알았는데, 제 생각이 틀렸을까요? 아니면 spring.servlet.multipart.enabled=false 이 코드가 있으면, 개발자는 어느 단계에서든 itemA 같은 멀티파트 데이터를 다룰 수 없는 건가요? 아니면 제가 테스트했던 코드 자체에서 문제가 있던 건지... 궁금합니다.
-
미해결실전! 스프링 데이터 JPA
UsernameOnlyDto 에서 오류가 발생합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]클래스로 할때 오류가 납니다 ㅠㅠUsernameOnlyDtopackage study.datajpa.repository; public class UsernameOnlyDto { private final String username; public UsernameOnlyDto(String username) { this.username = username; } public String getUsername() { return username; } } MemberRepositoryList<UsernameOnlyDto> findProjectionByUsername(@Param("username") String username);Test @Test public void projections() { // given Team teamA = new Team("teamA"); em.persist(teamA); Member m1 = new Member("m1", 0, teamA); Member m2 = new Member("m2", 0, teamA); memberRepository.save(m1); memberRepository.save(m2); em.flush(); em.clear(); //when List<UsernameOnlyDto> result = memberRepository.findProjectionByUsername("m1"); for (UsernameOnlyDto usernameOnlyDto : result) { System.out.println("usernameOnlyDto = " + usernameOnlyDto); } //then }오류내용java.lang.IllegalStateException: Failed to load ApplicationContext for [WebMergedContextConfiguration@66450129 testClass = study.datajpa.repository.MemberRepositoryTest, locations = [], classes = [study.datajpa.SpringDataJpaApplication], contextInitializerClasses = [], activeProfiles = [], propertySourceDescriptors = [], propertySourceProperties = ["org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true"], contextCustomizers = [org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory$DisableObservabilityContextCustomizer@1f, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizer@28f2a10f, org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@56cdfb3b, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@35aea049, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@7c24b813, org.springframework.boot.test.web.reactor.netty.DisableReactorResourceFactoryGlobalResourcesContextCustomizerFactory$DisableReactorResourceFactoryGlobalResourcesContextCustomizerCustomizer@485966cc, org.springframework.boot.test.context.SpringBootTestAnnotation@b5608ce], resourceBasePath = "src/main/webapp", contextLoader = org.springframework.boot.test.context.SpringBootContextLoader, parent = null]
-
미해결스프링 프레임워크는 내 손에 [스프1탄]
프로젝트 생성시 Srping MVC Project 없음
구글링해서 설치하려고 해도 안 되네요. 아래 분들 질문 참고해서 설치하려고 해봐도 안 되는데 자세하게 답변 좀 부탁드립니다 ㅠㅠ
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
DB에서 데이터가 삭제되지 않습니다.
안녕하세요 강사님. 강사님의 강의를 들으면서 혼자 프로젝트를 진행 중인데 혹시 이런 에러상황도 있을 수 있는지 여쭤보고 싶어서 질문남깁니다. 웹 사이트에서 특정 데이터 값을 삭제를 진행했고, 서버에서도 삭제가 잘 되었다는 로그와 함께 에러없이 삭제 완료되었는데, DB에서 그 값을 검색하면 그대로 남아있는 경우엔 어떻게 해결해야할까요? 삭제를 할때, 테이블의 PK값으로 해당 데이터를 삭제하는 것이 아니고 레코드의 PK말고 다른 값들을 찾아서 그 값이 있으면 데이터를 삭제하라고 로직을 짰거든요.그리고 처음에 기능을 완료했을땐, 잘 삭제가 되었는데 나중에 다시 테스트 진행하니 갑자기 DB에서 삭제가 되지않고 있습니다. // 권한 거부 확인 버튼 클릭 이벤트 핸들러 $(document).on('click', '#confirmRevokePermissionButton', function() { const selectedPermission = $('#permissionSelect').val(); const selectedUsers = $('.user-checkbox:checked').map(function() { return $(this).val(); }).get(); const projPK = $('#projectSettingForm').data('proj-pk'); if (selectedPermission && selectedUsers.length > 0) { $.ajax({ url: `/projMgmt/setting/${projPK}/revokePermission`, type: 'DELETE', data: JSON.stringify({ userPKs: selectedUsers, perPK: selectedPermission }), contentType: 'application/json', success: function(response) { Swal.fire({ icon: 'success', title: '권한 삭제 완료', text: '권한이 성공적으로 삭제되었습니다.', confirmButtonText: '확인' }).then((result) => { if (result.isConfirmed) { loadSetting(projPK); $('#permissionModal').modal('hide'); } }); }, error: function(xhr, status, error) { let errorMessage = '권한 삭제 중 오류가 발생했습니다.<br>'; if (xhr.responseText) { errorMessage += xhr.responseText; } Swal.fire({ icon: 'error', title: '권한 삭제 실패', html: errorMessage, confirmButtonText: '확인' }); } }); } else { Swal.fire({ icon: 'warning', title: '선택 없음', text: '권한을 선택해주세요.', confirmButtonText: '확인' }); } });이렇게 서버로 코드를 보내고 있고,@DeleteMapping("/setting/{projPK}/revokePermission") @ResponseBody public ResponseEntity<String> revokePermissions(@PathVariable Long projPK, @RequestBody Map<String, Object> requestBody) { try { List<Long> userPKs = ((List<?>) requestBody.get("userPKs")).stream() .map(Object::toString) .map(Long::valueOf) .toList(); Long perPK = Long.valueOf(requestBody.get("perPK").toString()); for (Long userPK : userPKs) { log.info("revokePermission projPK: {}, userPK: {}, perPK: {}", projPK, userPK, perPK); userPermissionService.revokePermission(projPK, userPK, perPK); } return ResponseEntity.ok("권한 거부 완료"); } catch (IllegalStateException e) { return ResponseEntity.status(HttpStatus.CONFLICT).body(e.getMessage()); } catch (Exception e) { return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("권한 거부 중 오류가 발생했습니다: " + e.getMessage()); } }서버에서 값을 받으면@Override @Transactional public void revokePermission(Long userPK, Long projPK, Long perPK) { List<UserPermission> userPermissions = userPermissionRepository.findByUser_UserPKAndProject_ProjPKAndPermission_PerPK(userPK, projPK, perPK); if (userPermissions.isEmpty()) { throw new IllegalStateException("해당 사용자는 부여된 권한이 없습니다."); } userPermissionRepository.deleteAll(userPermissions); log.info("Deleted permissions for userPK: {}, projPK: {}, perPK: {}", userPK, projPK, perPK); }보내진 값을 확인하고 값이 있으면 그 값을 삭제하고 값이 없으면 에러 메시지를 발송되게 해놨습니다. 추가로 작성하자면, 체크된 사용자를 권한삭제 버튼을 클릭했을 때권한선택창이 뜨고 수정 권한 삭제를 클릭하면, 완료되었다는 알림창이 뜨고 서버쪽에서는이렇게 로그가 발송되지만, DB에 찾아보면 여전히 값이 남아있는 것이 확인이 됩니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
HellospringApplication을 실행하고, 중지 했을때 에러가 나옵니다
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]강의 초반에 HellospringApplication의 main 을 실행했을떄 다른거는 다 잘나오는데, stop을 했을경우 위와같이 에러가 나옵니다ㅠㅜ 혹시 그냥 중지해서 나오는걸까요? 아니면 어떤 부분이 잘못된건가요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
Memberform 클래스 사용이 필수인가요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]@PostMappping("/members/new")public String create()여기에 Memberform form 을 파라미터로 넣었는데,Memberform 클래스를 사용하지 않고 이런식으로 그냥 Member 만 사용해서 바로 join이 가능한가요? 가능하지만 MemberForm 클래스를 활용하는 데 장점이 존재하기 때문에 MemeberForm 클래스를 사용하는건가요?아니면 아예 아래 코드처럼은 불가능한건가요?@PostMapping("/members/new") public String create(Member member) { memberService.join(member); return "redirect:/"; }
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
오늘 결제 했습니다!
오늘 결제 했습니다! 잘 들을게요
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
오늘 결제 했습니다!
오늘 결제 했습니다! 잘 들을게요
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
오늘 결제 했습니다!
오늘 결제 했습니다! 잘 들을게요
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
감사합니다!
오늘 결제 했습니다! 잘 들을게요
-
미해결윤재성의 만들면서 배우는 Spring MVC 5
학습 페이지 가 열리지 않아서 강의 시청이 안 됩니다.
안녕하세요.학습 페이지 가 열리지 않아서 강의 시청이 안 됩니다.모바일에서는 되는데 PC 에서는 안 됩니다.1 시간 째 계속 안 되고 있습니다.사용 브라우저는 Chrome, FireFox 입니다.점검 부탁합니다. 사이트 오류인지요?
-
미해결3. 웹개발 코스 [Enterprise Architecture(EA) X 전자정부프레임워크]
수정, 삭제 기능 관련 질문있습니다
안녕하세요.지금까지 강의따라가면서조회, 등록 페이지는 구현을 했는데 (boardView, boardWrite)수정이랑 삭제하는 기능도 구현하고 싶습니다 (boardEdit, boardRemove)강의에서는 수정,삭제를 다루는 부분이 없는거 같은데 맞을까요? 아니라면 강의 어디를 보면 되는지 알려주시면 감사하겠습니다!그리고 게시글을 한글로 작성하면 저장이 안되고, 영어+숫자는 되는데 혹시 이 문제 해결하려면 어떻게 해야할까요...??