안녕하세요, 프로그래밍 좀비님! 팀으로 앱 개발을 하려고 합니다. 플러터로 iOS/안드로이드 앱을 개발하고, 제가 백엔드를 맡게 되었는데 백엔드는 Java, SpringBoot로 구축할 예정이에요.. 앱 해킹 등 보안에 대해 기획자분이 강조하셔서, 아래와 같이 보안 대책을 고민하고 있습니다. 현재 적용 예정인 보안 대책 • JWT 토큰을 이용한 인증/인가 • HTTPS로 통신 암호화 • JPA 사용(PreparedStatement 기반이라 SQL 인젝션 방어) • API Rate Limiting 도입 예정 질문 드리고 싶은 내용 1. 위와 같이 보안 대책을 준비하면, 실제 서비스 운영 시 모바일 앱 백엔드에서 추가로 꼭 신경 써야 할 부분이 있을까요? 2. 강사님께서 실제로 350개 이상의 앱을 개발/배포하시면서 겪으신 보안 관련 실무 경험이나, 꼭 강조하고 싶은 보안 포인트가 있다면 조언 부탁드립니다. 3. 혹시 실무에서 자주 간과되지만, 반드시 챙겨야 하는 보안 체크리스트가 있다면 알려주시면 감사하겠습니다. 실제 현업, 350개 배포 경험을 바탕으로, 실질적으로 도움이 될 만한 조언을 듣고 싶습니다. 감사합니다!
게시글을 보면 한 개의 게시물 아래에 댓글이 쭉 나열되어 있습니다. 댓글을 확인할 때 page가 아닌 쭉 스크롤(infinite-scroll) 하면서 확인 하는 것인데 게시물 댓글에 왜 page와 pageSize가 필요한 것인지 모르겠습니다. 게시물의 댓글의 갯수를 말씀하시는 거라면 몇 개의 댓글을 불러오는지 이해가 가는데... 혹시 page와 pageSize가 단순히 두 단어를 말씀하시는 게 맞나요? 아니면 comment_count와 같은 게시물 갯수를 말씀하시는 건가요? @Test void readAll() { CommentPageResponse response = restClient.get() .uri("/v1/comments?articleId=1&page=1&pageSize=10") .retrieve() .body(CommentPageResponse.class); System.out.println("response.getCommentCount() = " + response.getCommentCount()); for (CommentResponse comment : response.getComments()) { if (!comment.getCommentId().equals(comment.getParentCommentId())) { System.out.print("\t"); } System.out.println("comment.getCommentId() = " + comment.getCommentId()); }
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. JPA와 DB 설정, 동작확인 과정에서 3version으로 pdf 파일보고 설정했는데 test 결과가 실패합니다... 원인을 모르겠습니다
혼자 문제를 풀어보았는데 1번에 idx2 는 쉽게 풀었는데 2번에 답을 sizeof(a)는 20이 나올거고 sizeof(a[0])은 4가 나온다고 생각하고 sizeof(a)/sizeof(a[0]) 이라는 약간 무식한 하드코딩 결과를 혼자 내놓았는데.. 이런식으로 풀면 정답 처리가 될까요?
안녕하세요 토비님 강의 듣고나서 제 나름대로 API 서버 제작 연습을 좀 해보도가 JPA 및 도메인 상태 변경에 관련해서 질문 드리고 조언을 얻고자 문의 드립니다. 상황은 아래와 같습니다. DDD에 입각하여 Aggregator 가 하위 Entity Life Cycle 담당 Entity 식별자 타입 경우 Long Client 에서 변경 API 요청 시 Aggregator 의 식별자는 존재하지만, 하위 Entity 에 대한 id 는 포함하지않은채 요청 { id: AggregatorId name: AggregatorName list: [ { name: 'modified name1', type: 'type1', status: 'active' }, { name: 'modified name2', type: 'type2', status: 'inactive' }, { name: 'new name3', type: 'type3', status: 'active' } ] } id 가 없이 JPA 변경 요청 시 delete-insert 가 진행 될것 같아 자체적으로 key based diff 라는 함수를 제작하여 변경점과 신규 데이터에 대해서 병합 후 save() 를 호출 할 것같은데 이럴 경우 insert, update 문의 별도로 나가지 않을까 생각이 듭니다. 이런 경우 DB 입장에서 하나의 트랜잭션에서 수행하더라도 부하나 성능에 악영향을 미칠 것 같은데 이럴 경우 어떤식으로 애플리케이션 로직을 세우고 JPA 를 어떻게 활용해야되는지 조언 부탁드려도될까요? 참고로 저는 하위 Entity 변경 시 batchUpsert 를 고려하고 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요.
토비님 안녕하세요. 강의 너무 즐겁게 잘 수강하고 있는 한 개발자 입니다. 강의 수강 중에 궁금한 점이 생겨서, 토비님의 의견이 궁금해서 한 가지 질문 드리고자 합니다. 33. 엔티티 클래스와 JPA 매핑 정보 분리 강의에서 분리를 xml로 분리해서 매핑 하는 예를 들어주셔서, 이 부분에 대해서 궁금한 점이 있습니다. 개인적으로 xml 매핑작성 생산 비용과 jpa/도메인 엔티티를 분리해서 작성하는 비용이 크게 차이나지 않는것 같단 생각이 들긴합니다. 결국 xml이든, 코드든 분리해서 작성 비용이 필요한 것 같아요. 그렇다면, 여기에서 관리 포인트를 이중(xml,코드)으로 가져가는게 나을지, jpa/도메인 엔티티를 분리해서 코드에서 관리하는게 나을지? 고민이 되는데요. 토비님의 의견은 어떠신지 궁금합니다. ai 자동완성 기능 활용 코드도 마찬가지로, 애노테이션 빼줘, 붙여줘 하면 어느정도 잘 만들어주긴 하더라구요. 이 부분도 어떻게 생각하시는지 궁금합니다. 코파일럿에 xml 매핑정보 만들어줘 하는 내용과, 코드로 애노테이션 붙여줘, 빼줘 해서 복/붙하는 행위 자체가 크게 다르지 않은것 같다는 생각이 들긴해서 이 부분은 어떻게 생각하시는지도 궁금합니다. 유지보수 관점에서 생산비용 보다, 개발 완료 후 유지보수를 하는데 있어서 그래도 xml/코드 두가지 중 1개를 선택해야한다면 어떻게 관리하는것이 나을까요?? 바쁘신 와중에도 질문 확인하고 답변 주시는 점 미리 감사드립니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 강의자료 2. 기본형과 참조형, 문제풀이 항목 (문제: 상품 주문 시스템 개발 - 사용자 입력)의 정답 부분에서 static ProductOrder createOrder의 하위내용에 전부 order1로 되어있는데 오타인 것 같습니다.
char *a[2]= {"Hello","World"}; printf("%s\n",*a);=> 출력값: Hello char*b[2][2]={{"hello","world"},{"app","dev"}}; printf("%s\n", *b); => 오류 일차원 일때는 출력할 때 정확한 값의 위치를 지정하지 않고 *a를 해도 출력이 되는데 이차원일 때는 안되는 이유가 무엇인가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 설치 후 실행이 되지 않고, 계속 제거와 설치를 반복하게 연결이 돼요. 어떻게 해야 하나요??
주말코딩님, 안녕하세요! 항상 잘 듣고 있습니다. 다름이 아니고, 6:34 부분에서 j=j-1이 int j=0에서 -1을 해서 다시 j에 -1을 집어넣으라는 거로 이해했습니다. 그래서 j=-1이 되고 밑에 arr[-1+1]= key가 돼서 arr[0]에 key에 담아뒀던 31이 들어가는 것으로 이해했습니다. 근데 만약에 j가 포인터변수고 배열을 가리키고 있다면 j=j-1을 했을 때 배열을 가리키는 포인터 위치를 하나 앞으로 땡기라는건가요? 정확한 예시를 들기 어렵지만.. 뭔가 어떨 때는 포인터의 위치를 하나 앞으로 땡기는 거고 어떨 때는 실제로 값에 -1을 하라는 거던데 혹시 구별법이 있을까요? ㅠㅠ 답변주시면 감사하겠습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 5. 회원 관리 예제 - 웹MVC개발을 실습하는 과정에서, 이렇게 홈 화면까지는 뜨는데, 회원 가입을 누르면 에러 페이지가 뜹니다. 구글 드라이브 링크 첨부하겠습니다! https://drive.google.com/file/d/15PPRaCNjmwZQYFxy5s0uY_FST3DapsL4/view?usp=sharing +) 위에가 메인 질문이고 세부사항 질문이 있습니다. 1) Whitelabel 에러 페이지가 뜨는데 인텔리제이 콘솔 창에는 별도의 에러 메시지가 뜨지 않습니다. 이게 콘솔창 최하단인데요. 에러메시지가 안나는게 정상인가요? 2) 위에 사진을 왼쪽에 실행목록을 보면 계속 로드중 표시 두개가 돌아가는데요. 저게 계속 돌아가더라고요. 빌드가 완료되면 초록색이 떠야되는거 아닌가 싶어서 여쭤봅니다. 웹 상에서 localhost:8080 홈페이지에 들어가지긴 합니다.
static 메서드를 실행할 때는 클래스명.메서드명()으로 실행 가능하다고 하셨는데 이 코드에서는 클래스명 없이 바로 say()로 실행되고 있는데 이 부분은 문제가 없는 건가요? 그럼 만약 msg가 static 변수라면 say()를 실행했을 때 오류가 발생하지 않고 정상적으로 작동되나요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (모르겠어요) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 이제 백엔드 개발자로 취업한 새내기 입니다. 제가 학생이 아니라 인텔리제이 유료버전을 사용해서 스프링부트앱을 개발하고자 하는데, 너무 비싸서 회사에서 따로 결제를 해주진 않습니다.. 혹시 그냥 커뮤니티에디션 으로 restapi 구현하는 방식으로 회사 일에 유리하게 가져갈 수 있을까요? 저희 회사는 스프링부트를 백엔드로,프론트는 jsp,jstl 사용중이라 집에서도 한번 해보고 싶은데 커뮤니티 에디션으로는 어려워서요