갑자기 AA업무를 맡게되어서 허겁지겁 질렀습니다
스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
삭제된 글입니다
- spring
- mvc
172만명의 커뮤니티!! 함께 토론해봐요.
스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
삭제된 글입니다
스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
안녕하세요! 스프링 로드맵을 따라 학습하고 있는 수강생입니다. 개인적으로 프로젝트 시작을 앞두고 있어서 로드맵을 전부 수강하고 싶지만 어려운 상황입니다. 프로젝트 시작 전 반드시 수강해야 하는 부분이 있다면 어떤 우선순위로 수강하는 것이 좋을지 알려주시면 감사하겠습니다 프로젝트는 프론트는 React를 사용한 웹 애플리케이션에, 머신러닝을 사용할 예정이며 현재 Spring 입문, 기초, HTTP 수강 완료하고 MVC 1편을 수강중에 있습니다.
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
오른쪽 상단에 설정 톱니바퀴 누르시면 나옴. ㅎㅎ
스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
spring mvc2편 듣고 바로 야생형 JPA 첫 강의를 들어도되나요?? 아니면 DB접근 강의를 듣고해야하나요??
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
(사진)
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
JPA 로드맵의 JPA를 제대로 학습하려면 스프링 로드맵 DB 접근기술에 있는 jdbcTemplate 관련 강의를 꼭 봐야할까요?
스프링 DB 2편 - 데이터 접근 활용 기술
하나 여쭤보고 싶은게 있는데, 기존에 NestJS를 사용하다가 Spring으로 전향하게 되어, NestJS로 작성된 토이 프로젝트를 Spring으로 변환하면서 강의 내용을 체득해보려고 합니다! 토이 프로젝트의 규모도 꽤 크고, 기존에 GraphQL로 작성된 쿼리들을 REST API로 변경할 계획인지라 사실상 새로 제작한다에 가까울 것 같습니다. 이걸 어떤 강의까지 들은 뒤 작업할 지 고민이 되는데, 혹시 조언을 주실 수 있을까요? 1. DB 2편 2. 스프링 완전 정복 로드맵 3. DB 2편까지 듣고, JPA 실무 완전 정복 로드맵까지 4. 스프링 완전 정복 로드맵과 JPA 실무 완전 정복 로드맵까지 현재 DB 2편 듣고 있는 중이며, 이 강의를 듣기 전엔 Spring에 대한 기반 지식이 아예 없었던 상태입니다. 조언 감사합니다!
나도코딩의 자바 기본편 - 풀코스 (20시간)
삭제된 글입니다
스프링 DB 2편 - 데이터 접근 활용 기술
커뮤니티에서 Mybatis 관련 비슷한 오류가 많아 보이길레, 여러분들의 시간을 아껴드리고자 제가 해결한 방법을 공유해드립니다. Mapper bean not found 저의 경우 Spring Boot 버전과 MyBatis 버전 불일치 문제여서 Mapper 빈 생성이 정상 작동하지 않았었습니다. (Mapper Spring 연동 모듈이 정상 작동하지 않은 문제??) // build.gradle plugins { id 'org.springframework.boot' version '2.6.5' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java' } 스프링 부트 3.0 이상 버전만 썼기 때문에 습관상 당연히 3.0 버전과 호환이 되는 MyBatis 버전 3.0.1 을 설정했지만 위와 같이 영한님의 수업 자료로 진행하셨다면 스프링 2.6.5 로 설정되어 있기 때문에 // build.gradle dependencies { //MyBatis 추가 implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.0' } 이렇게 바꾸시면 되실 겁니다! Invalid boud statement (not found) XML 파일에 오타가 있거나 XML 파일 경로 설정이 이상할 경우 발생하는 오류라 합니다 ItemMapper.xml 파일 경로를 잘 따라한 것 같엤는데 경로가 복잡하기도 했고 그래서 pdf 수업 자료 2번째 방법인 resources/mapper/ItemMapper.xml 로 xml 파일을 옮겼고 (기존 껀 부모 디렉토리까지 삭제) // application.properties #MyBatis mybatis.type-aliases-package=hello.itemservice.domain mybatis.configuration.map-underscore-to-camel-case=true logging.level.hello.itemservice.repository.mybatis=trace mybatis.mapper-locations=classpath:mapper/**/*.xml 설정 파일에 마지막 줄 (mapper 경로 설정) 을 추가해서 해결했습니다. 저와 동일한 문제가 아니신 분들도 계시겠지만 같은 수업 자료에서 출발했기 때문에 비슷하게 해결되지 않을까 싶어서 글 적었습니다! (질문글이 아니지만)
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
안녕하세요. 김영한쌤 로드맵 따라가려고 하는데 강의순서를 보아하니 "스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술" 보다 현재 이 강의가 더 먼저 듣는걸로 되어있던데 맞나요? 아니면 "스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술" 이게 좀더 이 입문 강의보다 기초적인 강의인가요? 서블릿 개념부터 제대로 알고싶으면 "스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술" 이걸 듣는게 맞는걸까요? 조언 부탁드릴게요 ㅠㅠ
스프링 부트 웹 개발 입문 - 따라하며 배우기
삭제된 글입니다
스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
안녕하세요, 여기에 여쭙는 것이 맞을까 고민하다가 혼자 해결할 별다른 방도가 없어서 부득이하게 글을 남깁니다. 강의와는 조금 동떨어져 있는 고민일 수 있지만 읽어주시면 감사하겠습니다. 얼마 전까지 저는 개인 토이 프로젝트를 구현할 때, MVC 강의에서 가르쳐주신 세션 방식의 로그인을 사용하였습니다. 그런데, 취업을 위해 여러 포트폴리오나 프로젝트 예시들을 보고 OAuth2 를 이용한 로그인 방식을 적용해보기로 마음 먹었습니다. 그래서 주로 인터넷을 통해 스프링 시큐리티와 OAuth2에 대한 자료들을 찾아 공부했는데, 공부를 하면서 다소 부족하다는 느낌을 많이 받았습니다. 스프링 시큐리티 기술의 난이도가 높은 탓인지 사용되는 모든 코드에 대한 명쾌한 설명을 얻을 수 없었기 때문입니다. 그리고 무엇보다도 찾아본 예제들에서 액세스 토큰을 다루는 방식들이 제각각 보안 취약점을 갖고 있다보니 이 코드들이 정말 실무에서 그대로 활용될 수 있는 코드들인지 확신할 수 없었고, 실무에서는 클라이언트와 서버가 어떠한 방식으로 액세스 토큰을 주고 받게끔 설계할지 감이 잘 오지 않았습니다. (이에 비하면 사소한 문제긴 하지만, 최근 스프링 시큐리티 6이 나오고, 여러 기능이 deprecate 된 탓에 코드를 그대로 적용하지 못하고 일일이 찾아보면서 수정해야 하니 더 까다롭게 느껴지기도 했습니다.) 때문에 강의나 서적을 통해 스프링 시큐리티를 활용하는 방법을 제대로 이해할 필요가 있지 않을까 하는 생각을 하게 되었습니다. 다만, 저는 취업을 목적으로 공부하고 있고, 시간이 한정되어 있는 상황에서 새로운 기술을 습득하는 데에 많은 시간을 쓰는 것이 조금 걱정이 되기도 합니다. 때문에, 기업에서 보통 신입 개발자에게 스프링 시큐리티 기술에 대해 어느 정도 수준으로 이해하고 있을 것을 요구하는지 여쭤보고자 합니다. 물론 당연히 기업마다, 상황마다 다를 수 있기에 어리석은 질문이라는 생각이 듭니다. 하지만, OAuth2 로그인 적용을 위해 해당 기술의 개념과 적용 코드들을 깊이 있게 공부하는 것보다, Spring MVC와 DB 접근 기술, Spring Data JPA 등의 이해도와 활용 능력을 키우는 것이 중요하다면, 후자에 집중하고 싶다는 마음이 큽니다. 긴 글 읽어주셔서 감사하고, 양질의 강의 제공해주셔서 정말 감사합니다.
스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
나에겐 영한이형 밖에 없쒀.... 지옥불구덩이에서 꼭 탈출 성공할게... !!!! 매일 일끝나고 공부하고, 주말에도 공부하고... 빡공중....!! 더열심히 빡공해야지!!!!! 으자자자자자자!!!! 스프링 마스터 가즈아!!!!!!!!!!! 흑흑... 오늘 완전 콜센터였어....... 미안해 반말해서... 형이랑 더 가까워지고싶어서 그랬어. 열심히 수강하고 만들어서 이직 성공 꼭 할게!!!! 형 인강은 내가 다 다서 들을거야....! 사랑해♡
스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
강의를 들으면서 정말 백엔드 개발자 쉽지 않구나 라는것을 느끼고 있습니다. 어느정도의 흐름은 파악 했는데 이걸 100프로 내꺼다 라고 할 수는 없는 상태라고 생각합니다. 누가 물어보면 야무지게 설명은 못하겠지만 속으로는 음..이런 흐름? 이런 느낌인데요 한번 처음부터 다시 듣는게 좋을까요(해당 강의를) 아니면 스프링 강의 전체를 끝까지 다 듣고 다시 한번 스프링 강의 전체를 처음부터 듣는게 좋을까요? 어떤 선택이든 한번 듣고 끝은 아닙닙니다만 어떻게 할지가 고민입니다. 개인적으로는 100프로 이해를 못해도 ( 0프로 이해면 다시 듣습니다) 일단 끝까지 한번 다 듣고 다시 한번 들으면 쯤 더 이해가 잘 되는 스타일인데 앞으로 있을 강의에서 특정 강의 내용을 이해하지 못하면 다음으로 나가는게 쯤 힘들까요? 근데 또 글을 쓰다보니까 그냥 끝까지 다 듣고 다시 한번 들을떄는 쯤 더 여유롭게 꼼꼼하게 기록하면서 듣는 방향으로 가봐야겠습니다. 고민이였는데 글을 쓰다보니 해결 되었네요 감사합니다.
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
일시정지하며 열심히 따라치고는 있는데 말씀하시는 내용이 무슨 말인지 잘 모르겠어요 ㅠ 원리 같은거 하나도 이해가 안되고 모르는 개념이 너무 많네요 이대로 계속해도 되는걸까요..? 다 수강하고 기본편 들어도 되나요? 자바 언어를 제대로 배우고 와야하는걸까요
스프링 프레임워크는 내 손에 [스프1탄]
안녕하세요 선생님~ 현재 맥북을 부트캠프를 이용해서 윈도우 운영체제를 사용하고 있습니다. 헌데 mysql startup을 실행하면 혼자서 셧다운을 해버립니다 ㅠㅠ 혹시 해결방법이 있을까요??
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
spring 3 버전 이용시에는 java 17 이상 버전을 이용해야합니다. java 11을 이용하실 때에는 오류가 따라오는거 주의 바랍니다.
실전! Querydsl
QueryDSL 내부 메소드 중 fetchResult() 나 fetchCount()는 만료된 메소드에 대해서는 QueryDSL에서 Blaze-persistence Integration 라이브러리 사용을 권장 하는데요, Blaze-persistence도 QueryDSL 처럼 쿼리 빌더 API 로서 개발자에게 유지보수하기 좋은 객체를 제공해주고 있습니다. 게다가 최신 업데이트 날짜가 글 작성일 기준(2023.06.21) 일주일 이전이라 여전히 유지보수되고 있어서 최신 스프링버전과 호환성도 어느정도 보장되었다고 볼 수 있습니다. 개인적으로 SpringBoot 3.1.0 기준으로 다음과 같이 세팅하니 정상적으로 동작하는 걸 확인했는데요, 혹시 저처럼 deprecated 메소드를 쓰는 것이 신경쓰이시는 분들을 위해 공유드립니다. build.gradle dependencies { //Blaze-Persistence implementation 'com.blazebit:blaze-persistence-integration-querydsl-expressions-jakarta:1.6.9' implementation 'com.blazebit:blaze-persistence-integration-hibernate-6.2:1.6.9' implementation 'com.blazebit:blaze-persistence-core-impl-jakarta:1.6.9' } BlazePersistenceConfiguration.java @Configuration public class BlazePersistenceConfiguration { @PersistenceUnit private EntityManagerFactory entityManagerFactory; @Bean @Scope(ConfigurableBeanFactory.SCOPE_SINGLETON) @Lazy(false) public CriteriaBuilderFactory createCriteriaBuilderFactory() { CriteriaBuilderConfiguration config = Criteria.getDefault(); // do some configuration return config.createCriteriaBuilderFactory(entityManagerFactory); } } QuerydslBasicTest.java ..... JPAQueryFactory queryFactory; @Autowired CriteriaBuilderFactory cbf; BlazeJPAQueryFactory blazeQueryFactory; @BeforeEach public void testEntity(){ queryFactory = new JPAQueryFactory(em); // 이건 동시성 문제를 고민하지 않아도 됨, 해결됨 blazeQueryFactory = new BlazeJPAQueryFactory(em, cbf); ..... 적용 결과 기존 QueryDSL 세팅한 것에 추가로 세팅하시면, 만료된 메소드에 대해 Blaze-persistence 객체로 대체되는데요, 기존 querydsl 클래스를 상속 받는 형태여서 QueryDSL이 제공하는 메소드를 그대로 쓸 수도 있습니다. fetchResults는 fetchPage로 바꿔서 사용할 것을 권장하고 있다는 점 참고하시면 될 것 같습니다. 추가로 내부로직이라든지 설명이 더 필요하시다면 Blaze-persistence 릴리즈 노트 와 Blaze Persistence Document 를 참고하시면 좋을 것 같습니다. 이 글에 대해 지적 및 피드백 해주시면 정말 감사하겠습니다. 감사합니다. 여담 및 고민 : 개인적으로 이 라이브러리의 내부로직을 뜯어보면서 분석하고 검증할 수 있는 역량은 부족한지라 분석 및 검증하는 방법에 대해서 팁이라든지, 아니면 blaze-persistence 사용할 시 주의해야할 점이라든지 조언해주실 수 있으시면 정말 감사드립니다. 강의를 듣던 중에 서브쿼리가 발생하는 부분에서는 정상동작하지 않는 것을 발견했습니다. @Test public void findUserDto(){ QMember memberSub = new QMember("memberSub"); List<UserDto> memberDtoList = queryFactory //이건 blazeQueryFactory가 정상 동작하지 않음 .select(Projections.fields(UserDto.class, //생성자 필드 순서에 맞게 변수를 만들어야 한다. member.username.as("name"), // member.age 대신 서브쿼리로 다 최대 나이로 찍고 싶어 ExpressionUtils.as( JPAExpressions .select(memberSub.age.max()) .from(memberSub), "age") )) .from(member) .fetch(); for (UserDto userDto : memberDtoList) { System.out.println("userDto = " + userDto); } } QueryDSL 쿼리 /* select member1.username as name, (select max(memberSub.age) from Member memberSub) as age from Member member1 */ select m1_0.username, (select max(m2_0.age) from member m2_0) from member m1_0 blaze-persistence 쿼리 /* SELECT member1.username AS name, member1.age AS generatedSubquery_1 FROM Member member1 */ select m1_0.username, m1_0.age from member m1_0 blaze-persistence generatedSubquery라 하여, 서브쿼리를 하나의 alias로 처리를 해버렸는데, 후행으로 이 generatedSubquery 에 대한 정의가 따라오질 않습니다... 왜 이런 차이가 나오는지는 모르겠지만 blaze-persistence 활용할 때는 유의해야할 것 같습니다.
스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
안녕하세요, 김영한 강사님의 강의를 순차적으로 들으면서 개발에 대한 지식을 쌓고있는 학생입니다. 개발 자체가 처음은 아니지만, 스프링으로 개발을 이번에 처음으로 시도해보려고 해서 김영한 강사님의 강의를 듣고 있는데요, 제가 지금 강사님의 강의 내용을 토대로 일부 강의자료 내용 발췌( 대부분 이미지이며, 레퍼런스를 남기고 있습니다)하여 블로그를 작성하고 있습니다. 블로그는 단순히 저의 복습용으로 사용하고 있습니다만, 불연듯이 이러면 안되는게 아닌가라는 생각이 들었습니다... 제가 부탁 및 질문을 한가지 드리고 싶습니다. 혹시 제가 강사님의 강의내용을 블로그에 정리를 하는데 있어서 강사님의 강의자료의 내용이 일부 포함되어도 괜찮을까요,,? 만약 안된다고 하시면 지금이라도 모든 블로그 내용을 비공개로 전환하겠습니다!
스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
.idea 내부 gradle.xml 원하는 버전의 xml 로 대체 .gradle 삭제 gradlew 원하는 버전의 gradlew 로 대체 gradle.bat 원하는 버전의 배치 파일로 대체 build.gradle, settings.gradle 도 마찬가지 invalidate cache -> 재시작 이러면 성공적으로 버전 업데이트 build.gradle, settings.gradle 디펜던시는 다 알아서 찾아서 챙겨와야합니다