728x90
솝트 32기 서버파트 합격 후기 🙋🏻♂️ 실패로 가득했던 몇 개월을 거치고, 너무나도 간절했던 동아리 솝트에 운 좋게도 합격하게 되어 이렇게 후기를 남기려한다. 혼자 여러 프로젝트를 기획하고 진행하면서 어느순간 한계에 부딪힘을 느꼈다. 나 혼자서 해결하기 어려운 순간, 도움 요청을 할 주변인도 없을 뿐더러 오히려 질문을 받는 입장인 나는 "대체 어떻게해야 지금보다 더 빨리 성장할 수 있을까" 를 고민하기 시작했다. 이 의문에 대한 해답은 스터디 및 정보 공유를 위한 네트워킹 활동 등의 협력 과정이었고 이러한 생각은 같은 분야를 향해 함께 걸어가는 동지를 찾고 싶다는 생각으로 이어졌다. 개발은 혼자서 이루어지는 과정이 아닌 것을 이젠 충분히 알기에 협업 경험 또한 더욱 쌓아보고 싶었다. 그렇게 시작하게 ..
스프링부트에서 Response 시, JSON의 한글이 깨지는 오류 해결 문제 상황 ⛔️ 스프링을 통해 RestAPI 서버 개발 도중, 한글로 작성한 Response Body의 값이 "??? ???." 등과 같이 출력되는 현상을 마주했다. 아무래도 response의 Content-Type이 utf8이 아니기 때문에 발생하는 것이 아닐까 의심을 했고,정답이었다. 때문에 response 응답에 Content-Type 헤더를 추가해주어야 했다. 해결 방법 💭 해결 방법은 Controller의 RequestMapping 어노테이션 단에, @RequestMapping(value = "/competition", produces = "application/json; charset=UTF8")위와 같이 produ..
✔ JPA에서 가장 중요한 2가지1. 객체와 관계형 데이터베이스 매핑하기DB와 객체를 어떻게 설계해서 어떻게 매핑되도록 할 것인가(설계와 관련된 부분) 2. JPA의 동작원리영속성 컨텍스트 ⚙ 엔티티 매니저 팩토리와 엔티티 매니저클라이언트의 요청이 올때마다 EntityManagerFactory에서 EntityManager를 생성해서 제공한다.EntityManager는 내부적으로 DB Connection을 사용해서 DB를 사용하여 데이터를 제공함. 📦 영속성 컨텍스트JPA를 이해하는데 가장 중요한 용어직역하자면 “엔티티를 영구 저장하는 환경”이라는 뜻EntityManger.persist(entity) 시에 DB에 저장한다는 뜻이 아닌 영속성 컨텍스트를 통해 엔티티를 영속화 한다는 뜻→ DB저장이 아닌, ..
스프링부트로 서버 개발 시에, 프론트 단이 React인 경우서버에 Request를 보냈을 시에 CORS 에러가 발생한다. 그렇다면 CORS란 무엇일까? CORS (Cross-Origin-Resource-Sharing) 란? 🤷♂️교차 출처 리소스 공유를 뜻하는 CORS는, '서로 다른 출처에서 리소스를 공유하는 것'을 뜻한다. 여기서 말하는 출처란 다음과 같다. URL은 https://www.domain.com:3000/user?query=name&page=1 과 같은 형태로 이루어져 있다. 이 중, 'Protocol, Host, Port' 를 합쳐 부르는 말이 Origin(출처)이다. 이제 이해가 갈 것이다. CORS 허용 설정을 하지 않았을 경우,서버와 다른 Origin을 가진 곳에서 서버의 O..
1. SQL 중심적인 개발의 문제점 🤦♂️ JPA를 사용하기 전, 데이터 등록 조회 삭제 등의 상황마다 INSERT, UPDATE, SELECT 등 CRUD의 무한 반복! 만약 위와 같은 Member 클래스를 생성했다면 DB에 아래와 같은 SQL문을 입력해주어야함. 이후 Member 클래스에 tel이라는 맴버 변수가 추가되면 UPDATE 쿼리로 DB 테이블 구조를 변경해주어야함. 😢 하지만 SQL에 의존적인 개발을 피하기는 어렵다.개발자가 객체를 SQL로 변환하여 관계형 데이터 베이스에 넣는 과정이다.이 과정은 자바를 DB 연동하여 함께 사용할 때, 어쩔 수 없이 거쳐야하는 과정이다. 그림에 있는 "객체 -> SQL 사이의 SQL 변환 과정" 에서 개발자가 SQL 매퍼의 역할을 하고 있었다..!🤦..