해당 게시글은 스프링부트 핵심 가이드 교재를 공부하며 작성한 글입니다.06. 데이터베이스 연동ORMObject Relational Mapping의 약자객체 관계 매핑객체지향 언어에서 의미하는 객체와 RDB(Relational Database)의 테이블을 자동으로 매핑하는 방법쿼리문 작성이 아닌 코드(메서드)로 데이터를 조작할 수 있다.ORM의 장점ORM을 사용하면 데이터베이스 쿼리를 객체지향적으로 조작할 수 있다.쿼리문을 작성하는 양이 현저히 줄어 개발 비용이 줄어든다.객체지향적으로 데이터베이스에 접근할 수 있어 코드의 가독성을 높인다.재사용 및 유지보수가 편리하다.ORM을 통해 매핑된 객체는 모두 독립적으로 작성되어 있어 재사용이 용이하다.객체들은 각 클래스로 나뉘어 있어 유지보수가 수월하다.데이터베이..
분류 전체보기
해당 게시글은 스프링부트 핵심 가이드 교재를 공부하며 작성한 글입니다.03. 개발 환경 구성자바 JDK 설치자바 JDK는 Azul에서 제공하는 Open JDK를 사용합니다. (이 외에도 다른 방법도 가능) 윈도우에서 정상적으로 JDK를 사용하기 위해서는 환경변수를 추가해야 합니다. 인텔리제이 IDEA 설치제트브레인의 인텔리제이 IDEA를 사용합니다. 04. 스프링 부트 애플리케이션 개발하기프로젝트 생성인텔리제이 IDEA에서 프로젝트 생성하기인텔리제이 IDEA 얼티밋 버전을 사용한다면 내장된 Spring Initializr를 사용하여 스프링 프로젝트를 생성할 수 있다. 스프링 공식 사이트에서 프로젝트 생성하기스프링 공식 사이트에는 스프링 부트 프로젝트를 자동으로 만들어주는 서비스가 있다. https://s..
해당 게시글은 스프링부트 핵심 가이드 교재를 공부하며 작성한 글입니다. 01. 스프링 부트란? 스프링 프레임워크자바에서 가장 많이 사용하는 프레임워크자바 언어를 이용해 *엔터프라이즈급 개발을 편리하게 만들어주는 '오픈소스 경량급 어플리케이션 프레임워크'*엔터프라이즈급 개발 : 기업 환경을 대상으로 하는 개발스프링의 핵심 가치 : 애플리케이션 개발에 필요한 기반을 제공해서 개발자가 비즈니스 로직 구현에만 집중할 수 있게끔 하는 것 제어 역전(IoC)Inversion of Control의 약자일반적인 자바 개발의 경우 사용하려는 객체를 선언하고 해당 객체의 의존성을 생성한 후 객체에서 제공하는 기능을 사용한다.IoC를 적용한 환경에서는 사용할 객체를 직접 생성하지 않고 객체의 생명주기 관리를 *외부에 위임한..
(※명수옹 주의 ※)이제 진짜 마지막이네요. 이 회고를 언제가는 쓰게 될 것이라 생각했었는데 너무 일찍 쓰게 된 것은 아닌지 ... 어떻게 작성을 해야할지도 잘 모르겠습니다. 2024년에 졸업을 앞두고 막막하던 시점 같이 수강한 현서의 도움으로 알게 됐고, 같이 수강하게 되었습니다. 그렇게 강사님과 매니저님들 그리고 다른 수강생들과 함께 추운 겨울에 시작해서 무더운 여름에 마무리 지었네요. 껄껄... 어우 오글거려 ㅋㅋㅋㅋㅋㅋ 초반 내 실력?컴퓨터공학과를 전공했지만 정말 처참했습니다...ㅋㅋ 할 줄 아는 거라곤 발표와 PPT 만들기? 이거라도 잘했으면 영업직으로 빠졌을 거에요. 진짜 코딩도 제대로 못하고, 발표도 엉망, 디자인 감각이라곤 1도 찾아볼 수 없어서 PPT도 엉망, 서버는 뭔데? 할 정도의 정..
뭐지? 분명 5개월 차 회고 쓴지 얼마 안됐는데 왜 벌써 돌아왔지~~~ 그만큼 이번 8월 짧게 느껴졌다.(실제로 23일이니까 짧기도 함)오랜만에 프로젝트 / 전반적인 느낀 점 / Keep / Problem / Try로 나눠서 월간 회고를 써봐야겠다. 1개월 간 프로젝트 이번 달에는 특별한 기능을 추가한 것 없이 버그와의 사투였다.설계를 잘 못했던 탓인지 너무 많은 버그가 있었다. MongoDB의 데이터가 변하지 않는 버그, 데이터가 변하면 변한대로 다른 부분에도 적용이 되어야하는데 적용이 안되는 버그 등 기능적으로도 버그가 많았고, Batch 서버 배포가 되지 않는 문제 때문에 또 힘들었었다. 그만큼 이번 프로젝트에서 설계의 중요성을 느꼈다.. 마지막 주에는 쉬엄쉬엄 이력서도 쓰면서 발표 준비를 할 ..
플레이데이터 백엔드 개발 부트캠프 26주 차 회고(8월 3주 차) 벌써 6개월이 지나 마지막 주간 회고를 작성한다! 프로젝트 월요일프로젝트의 마지막 주였다. 일단 내 서버에서는 큰 문제는 없었다. 다른 팀원들이 맡은 파트에서 약간의 버그가 있어서 다른 팀원들이 수정을 진행하고, 나는 다이어그램을 그렸다. 저번 프로젝트에서 Data Flow Diagram을 그리는게 재밌어서 이번에도 눈에 보이는 데이터의 흐름을 그렸다. 거래 내역파트만 그렸었는데, 다른 쪽 DFD를 그리다 보니 전체적으로 한번에 그리는 것이 나아보여서 전체적인 DFD를 그렸다.음.. 좀 복잡한가? 싶었는데 깔끔하고 좋다는 평을 많이 받아서 그냥 사용하기로 했다.서버간 어떤 데이터를 주고 받으면서 통신을 하는지 다이어그램을 통해서 볼 수 있..
플레이데이터 백엔드 개발 부트캠프 25주 차 회고(8월 2주 차) 프로젝트 월요일지난 주 몽고DB의 업데이트를 시도하다가 실패하고 다시 시도하였다. 분명 setter를 실행한 뒤에 새로 save를 해주면 된다는 블로그를 많이 봤는데 계속해서 PK인 ID의 중복때문에 해결하지 못했다. 그래서 잠시 쉬어갈 겸 다른 부분의 수정을 시도했다. 월 별 지출을 보여주는 페이지가 있는데 생각하고 보니 월이 바뀔 때, 지출의 값을 초기화 해주지 않았던 것이 기억 나서 수정이 들어갔다. 어떻게 하면 좋을까 고민하다 Disable이란 필드를 새로 추가해서 매월 1일 스케쥴러를 통해 disable 필드의 값을 false로 바꿔주고 새로 저장되는 값은 true로 저장해서 값을 읽어올 때 true인 값만 꺼내오게 했다.이후 몽..
플레이데이터 백엔드 개발 부트캠프 24주 차 회고(8월 1주 차) 프로젝트 월요일지난 주 GraphQL을 마무리하고, 말썽이던 배치 서버를 수정하기로 했다.내가 구현한 배치 서버에 대해서 간단하게 설명하자면, 은행 어플 상 거래 상당히 많은 양의 거래 내역이 존재하기 때문에 해당 거래 내역의 양이 많아질 경우 데이터를 조회할 때, 성능이 안 좋아질 것이라 판단했다. 자정에 가까운 시간에 은행이 점검을 들어가는 것처럼 자정에 배치 서버를 돌려서 RDB에 저장되어 있던 거래 내역을 MongoDB로 데이터를 옮기고, RDB에 있는 데이터를 날려주는 역할을 하는 것이 내가 구현하는 배치 서버다. 이후 조회할 때, RDB와 MongoDB에 있는 데이터를 Paging을 통해서 가지고 오게 된다면 성능이 좋아질 것으..