전체 글 119

[개발] H2 DB 테이블 intellij에서 보이게 하기(실패/해결)

🛤️현상 지금은 이렇게 원격 DB에 있는 테이블들이 인텔리제이 내부에서 보이지만 문제 해결 전에는 안 보였음ㅠㅠ 연결도 제대로 됐고, console창에서 sql문도 정상적으로 입력이 되는데 테이블들이 안 보였었음. (안 보였을 때 화면은 바빠서 캡쳐 못함) 🗝️해결 원래는 Name에 H2라고만 되어 있었는데 H2DB라고 바꾼다. 노란 박스에 있는 부분을 체크한다.

[개발] 🎁배운점 - @ManyToOne과 자료형이 객체일때

🛤️현상School entity의 id 값을 리뷰 entity의 schoolId가 외래키로써 사용하는 관계인데, 나는 왜 여기서 schoolId의 자료형이 왜 School인지가 의문이었다. 왜냐하면 DB에 들어있는 실제 schoolId의 자료형은 Long 타입인데 말이다. 그리고 저렇게 객체가 자료형이면 DB에는 어떻게 값이 들어가는지도 의문이었다.🗝️아하!왜 자료형이 School이지?[School 자료형을 사용함으로써 Review 엔티티와 관련된 School 엔티티와 직접적인 연관 관계를 설정할 수 있습니다. 이를 통해 Review 엔티티에서 관련된 School 객체에 직접적으로 접근하고 조작할 수 있습니다. Long 타입 대신 School 객체 자료형을 사용하는 이유는, 연관된 School 객체의..

[개발]⚠️MISS - @RequestBody를 써야 값을 받아오지!!

🛤️현상 : @PostMapping("/save") public ResponseEntity save(Review review) { return ResponseEntity.ok().body(reviewService.save(review)); } 라고 메소드를 짯더니 포스트맨에서 테스트 했을 때 데이터가 들어오질 않았다. 🗝️원인/해결 : public ResponseEntity save(@RequestBody Review review) 이렇게 @RequestBody를 붙여야지 URL의 Value들을 받아올 수 있다.

[개발]🚨ERROR - post men에서 "status": 415,

🛤️현상 : 문제는 get은 CRUD 중에 read에서만 사용이 가능하다는 것이다. 근데 사실 내가 이제까지 공부하면서 get,post,put,delete의 차이를 진지하게 고민한적이 없다는 것이다. 근데 내가 개발을 crud 모두 성공했으나 모두 get으로 해버렸고 read 빼고는 다 바꿔야하는 상황인데 http메소드의 body에 데이터를 담아서 보내는 것을 처음 해봤다..... 포스트 맨에서 put방식으로 설정하고 쿼리파라미터 형식(키&밸류)으로 데이터를 넘기려고 하니까 { "timestamp": "2023-05-23T08:26:31.642+00:00", "status": 415, "error": "Unsupported Media Type", "path": "/review/update/3" } 이러한..

[개발] ⚠️MISS - URL에서 값을 post 방식으로 받아오려면?

🛤️현상 : @PutMapping(value = "/update/{id}") public ResponseEntity update(@RequestBody ReviewDTO dto, @PathVariable Long id) { Optional reviewdto = this.reviewService.update(id, dto); logger.debug("------id값: "+id); return new ResponseEntity(reviewdto, HttpStatus.OK); } 라는 코드를 기반으로 http://localhost:8080/review/update?id=4&author=hhhhhhhhh&tags=IT&content=hello&trafficRate=4&facilityRate=4&cafeteri..

[개발] 🚨ERROR - org.h2.jdbc.JdbcSQLIntegrityConstraintViolationException:

한이음 프로젝트 Review의 CRUD를 만드는 과정 중.... (오류잡느라 빠바서 오류 메세지를 직접 캡쳐하지는 못함) 🛤️현상 : org.h2.jdbc.JdbcSQLIntegrityConstraintViolationException: Referential integrity constraint violation: "CONSTRAINT_C3: PUBLIC.REVIEW_TB FOREIGN KEY(SCHOOLID) REFERENCES PUBLIC.SCHOOL_TB(ID) (CAST(1 AS BIGINT))"; SQL statement: insert into review_TB (id, author, cafeteriaRate, content, educationRate, employmentRate, facilit..

[개발] Post Men 첫 사용 _ 여러가지 오류들

🛤️현상 : Could not send request Cloud Agent Error: Can not send requests to localhost. Select a different agent.라는 오류가 포스트맨에서 발생했고 ⭐원인 : 포스트맨에서 localhost로 요청을 보내려고 할 때 발생하는 문제입니다. Cloud Agent는 localhost로의 요청을 지원하지 않기 때문에 해당 오류가 발생합니다. 🗝️해결 : @CrossOrigin(origins = "http://localhost:3000", methods = {RequestMethod.OPTIONS, RequestMethod.DELETE, RequestMethod.GET, RequestMethod.POST, RequestMethod.P..

[개발] 🤦🏻‍♀️고민하기 - Service/ServiceImpl 사용에 대한

🛤️상황 나는 ReviewService - ReviewServiceImpl의 구조를 취했고, 팀원은 Impl 클래스를 없애고 거기에 있는 구현 코드를 controller에 작성하였다. 팀원이 그렇게 작성한 이유는 JPA를 사용하기 때문에 내가 직접 구현해야 하는 메서드들이 적다. service - impl 구조를 취하지 않는 것이 더 편리하다고 생각다. 지금 우리 프로젝트의 기능들이 그렇게 복잡한 구조를 요구하지 않는다. 하지만 나는 service - impl 구조로 프로젝트를 진행하고 싶었다. 그 이유는 다음과 같다. 그게 가장 노멀하고 정석적인 방법이라고 생각했다. 지금까지 공부한 책,블로그,강의 등에서 대부분은 그렇게 해왔다. 정석의 방식을 따르는게 나중에 탈이 없을 것이라고 생각했다. 🎢과정 팀원..

[개발외] 프로젝트 기반 준비

팀원들이 각각 몇 개의 고등학교를 나누어서 전화를 돌린후에 그 결과를 팀 노션 페이지에 기록해두었다. 학생들에게 설문조사 링크를 배포하여 직접 학생들에게 요구사항, 불편함 등을 물어보기 위함이었다. 그 결과를 기반으로 프로젝트의 기능들을 제공할 예정이다. 🔅현재 상의중인 사안) 우리 웹 사이트만의 특색있는 고등학교의 정보가 있어야 하는데(기본 정보는 메리트가 X) 그 정보들을 어떻게 수집할 것인가에 대해 아직은 상의중에 있다. 지금까지 나온 이야기들 중에 가장 현실적/효율적인 방식은 팀장이 이야기한 커뮤니티나 게시판 등의 공간을 제공하여 재학생들이 직접 정보를 제공하도록 유도하는 것이다.

[어려움] 팀원들과의 어려움&해결방안

⛅상황 우리 팀은 나를 포함하여 총 4명으로 구성되어 있다. (모두 같은 학년이고 같은 수업을 듣는다.) 나를 제외한 3명은 나보다 2살 많으며 프로젝트 팀 구성전에 이미 친분관계가 두터웠다. 그중에 2명은 프론트 팀, 나머지 한 명은 나와 같이 백엔드를 맡은 팀원이었다. 그런데 백엔드를 함께하게될 팀원은 개발을 혼자 하는 것을 선호하였고, 개발 현황에 대해 공유하는 것도 능숙한 편은 아니었다. 이건 그 팀원의 잘못임을 말하는 것이 아니라 프로젝트 진행에 약간의 어려움이 발생했다는 것을 말하고 싶은 것이다. 백엔드를 함께 맡은 팀원은 나보다 실력은 조금 더 좋은 편이었고, 팀장이었다. 내가 백엔드 관련해서 기능을 맡아 코드 작업을 하기 위해서는 내가 먼저 물어봐야 했다. 먼저 역할을 나눠서 주는 타입이 ..