2025/02 35

자바 풀 스택 2/28 오후 기록 065-2

파일 기능 알아서 추가해보라고 하심....ㅋㅋㅋㅋㅋㅋ 하... 새 프로젝트 나감 JPA  이번시간엔 JPA에 대해서 배울건데 JPA에 대해 검색해서 공부하고 있기챗지피티에게 물어본 JPA in JAVA JPA는 선택 사항임. 깊이 들어가면 어렵다고 함.  새로운 클래스 만들기  이걸 실행하면 알아서 데이터베이스에 테이블을 생성해줌.      이렇게 선언한 것만으로, MemberRepository 인터페이스를 구현한 클래스로 생성된 객체가 bean으로서 관리된다.   15:22에 선생님 수업 관련해서 고민하시는 동안  다운로드 횟수 체크하는 것도 성공했다. 야호.다만 이제, 다운로드 링크 누르면 page 새로고침 해주는 기능 추가해줄 필요가 생김 ㅋㅋ  create-drop 하면 일시적으로 생성했다가 삭제..

챗지피티에게 물어본 JPA in JAVA

이번 시간에는 스프링부트와 타임리프 등을 이용해서 java의 jpa 에 대해서 학습한다는데 jpa에 대해 자세히 설명해줘  JPA(Java Persistence API)는 자바에서 데이터베이스와 객체 지향 프로그래밍을 연동하기 위한 표준 API입니다. 즉, 자바 객체와 관계형 데이터베이스(RDBMS)의 데이터를 매핑(mapping)하는 기술입니다. JPA를 사용하면 SQL 쿼리나 데이터베이스와의 직접적인 상호작용을 최소화하고, 자바 객체를 통해 데이터베이스 작업을 쉽게 할 수 있습니다.JPA의 핵심적인 개념을 몇 가지로 정리해볼 수 있습니다:1. 객체-관계 매핑 (ORM)JPA는 객체-관계 매핑(Object-Relational Mapping) 기술을 제공합니다. 객체 지향 프로그래밍에서는 객체가 데이터베..

자바 풀 스택 2/28 오전 기록 065-1

9:10 즈음 도착했는데 카드 찍는거 까먹어서 9:20 경 카드 찍음   화면에 나타난 비어있지 않은 div는 웹브라우저가 해석을 해서 채워줌.start 로 실행하면 index.js가 해석되면서 App.js의 내용을 해석해서 렌더링해준 것을 id가 root인 div안에 들어간다.   새로 앱 환경을 구축하는건 귀찮으니까 src 폴더 이름을 변경해가면서 src 폴더를 계속 새로 만들어가면서 예제들을 연습할 것이다.  원래 src였던것에서 아래 네 개 복사 붙여넣기  App.jsx   리액트에서 이벤트리스너 함수를 등록하는 방법.     useXXX 이런 형태는 hook이라고 한다.hook 갈고리처럼 낙아채서 사용한다. useState는 상태값을 관리하기 위한 hook이다.set어쩌구는 기존에 있던 값과 같..

자바 풀 스택 2/27 오후 기록 064-2

일단 이어서 만들기 하는 중인데 왼쪽거에 추가할 거 추가하고 보자.자꾸 form의  method 를 빼먹고, 파일인데 enctype 들어가야하는거 까먹음그리고 이전 예제에서 Dto에 만들어놨던 myFile의 기억이 다시 되살아났다. 여기서 쓸려고 만들었었다. 고친거  자 이제 controller에서 /file/upload 요청에 응답해야 하니까 dao랑 service를 만들어야 한다.insert, delete, update 세개랑 파일 가져오기 getData, 파일 리스트 가져오기 getList이렇게 만드는데, 파일을 저장하는 과정에 경로 설정(custom.properties에서 했던것)도 필요하니까 이런거 관련해서 dao 만들고, 페이징 처리해야하니까 FileListDto도 만들까? service도 만..

자바 풀 스택 2/27 오전 기록 064-1

9:27 학원 도착오전 시간에는 1시간 리액트 나간다고 해서 준비해둠.  비쥬얼 스튜디오 코드에 확장 프로그램 4개 설치하기   나는 와서 헬로우 폴더에서 터미널 열었었는데 이번에는 react_work에서 만들어야 해서 경로 바꿔서 들어감  create-react-app basic을 입력하면 basic이라는 앱을 개발할 환경(web pack)이 구성된다.구성되는데는 시간이 걸리고, 구성된 후 cd 앱이름 npm start 로 앱 개발 시작  창 뜬거 두개 닫고 우리는 vs code에서 터미널을 열어서 할거임 터미널 닫으면 서버도 죽는줄 알았는데 서버는 돌아가고 있음. Y누르면 3001번 포트에서 돌아감  package.json은 maven에서 pom.xml과 유사한 역할을 함.@d어쩌구로 필요한 libr..

자바 풀 스택 2/26 오후 기록 063-2

조회수가 올라가 있는 글은 게시글 삭제가 안되는 문제가 있는데, 그 이유는 post 테이블을 reference로 하는 readed_data테이블이 존재하는데 RDBMS이니까 관계가 존재하면 없앨 수 없다. 우리는 child 테이블인 readed_data에 있는 데이터를 삭제하고 post를 지우는 기능을 추가할 것이다.  dao에서 readed_data에서 포스트 번호가 읽힌 숫자만큼의 row가 삭제될 것임.  postservice에서 글 삭제 전 자식 레코드 먼저 삭제  댓글 삭제 기능 추가하기  postcontroller로 가서 map에 여러 데이터 타입의 데이터를 섞어 담을 때는 generic 타입을 Object 라고 해야 한다.아래에서는 list도 담겼고, int도 담겼다.  댓글 수정 기능도 만들..

챗지피티에게 물어본 이클립스 개발 환경과 리액트 개발 환경 유사점 및 차이점

그동안 이클립스 환경에서 Spring 으로 개발했었는데 이번에는 node.js를 활용해서 react 개발 환경을 구축한다고 해. 둘이 무슨 차이야? 어떻게 비슷하고 어떻게 달라?    ChatGPT의 말:이클립스 환경에서 Spring으로 개발하던 것과 Node.js 및 React 환경에서 개발하는 것은 매우 다른 접근 방식과 도구를 사용하지만, 각자의 장점과 특징이 있습니다. 둘 사이의 차이점과 유사점을 비교해 보겠습니다.Spring (Java) + 이클립스 환경:언어 및 플랫폼:Spring은 Java 기반의 웹 프레임워크로, 주로 서버 측 로직을 작성하는 데 사용됩니다.이클립스는 Java 개발을 위한 통합 개발 환경(IDE)으로, Java 프로젝트를 관리하고, 디버깅하고, 빌드를 쉽게 할 수 있게 도와..

자바 풀 스택 2/26 오전 기록 063-1

9:20 학원 도착 어제 구현한 기능 복습새글 작성 -> /post/new가 요청되는데 whitelist에 있지 않아서 스프링 시큐리티가 로그인 하지 않은 상태에서 그 요청을 받아주지 않아서 required-loginform으로 리다이렉트 됨. 상황에 따라서 로그인 안하면 글 목록은 보이고 글은 못보게 할지, 글목록도 글도 보게 할지 whitelist에서 설정하면 된다. AuthSuccesHandler는 빈으로 만들지 않고 직접 객체를 생성해서 넣어주고세션유지 시간, 세션의 userName도 담아줘서 어디서든 session.userName으로 사용자 이름을 알 수 있음. 스마트 에디터는 사진 첨부도 가능한 에디터.사진이 업로드되었을 떄의 소스는 업로드되어 저장된 saveFileName. 이미지가 어떻게..

자바 풀 스택 2/25 오후 기록 062-2

내용을 입력하는 부분에 [ ( $ { postDto.content } ) ] 이렇게 작성해야지 안그러면 html 태그 요소 기호들이 그대로 문자열로서 입력돼서 마크업되지 않고 모두 입력됨. 글 수정 기능 가보기              조회수 올려주는 방법key값을 담아준다.  [[${saveSuccess}]] [[${updateMessage}]] 이전글 다음글 [[${postDto.condition}]] 조건 [[${postDto.keyword}]] 검색어로 검색된 내용 글 자세히 보기 글번호 [[${postDto.num}]] 작성자 [[${postDto.writer}]] 제목 [[${p..

자바 풀 스택 2/25 오전 기록 062-1

9:23 경 학원 도착 일단 수업 따라가려고 선생님이 작성한거 가져옴.. 자바스크립트에서let result="kim"; let result=name+"gura"; 이 두줄을 백틱을 사용해서 let result=` ${name}gura`; 로 합쳐서 쓸 수 있는 것처럼 타임 리프에서는 | |사이에 있는 내용이 하나의 문자열로 인식되어 타임리프언어와 자바스크립트언어를 같이 사용할 수 있다. 즉, | 번호 : ${ num } |, [[ | 번호 : ${num} | ]] 이런식으로 작성하면 오류 없이 작성할 수 있다.링크도 마찬가지이다. @{|study?num=${num}&name=${name}|} 이런식으로 작성하면 타임리프가 참조할 수 있는 형태로 작성할 수 있다.이거보다 불편한 형..