객체지향 7

2022.03.24 ⭐DB 그리고 객체지향의 문제점

DB가 죽는 이유 그리고 객체지향의 문제점에 대한 조금... 아니 어려운 이야기를 해주셨습니다 앞으로 진행될 강의와 우리가 고민해야 할 문제들도 포함된 중요한 이야기여서 정리해보겠습니다 DB가 죽는이유? DB는 기본적으로 여러 사람이 처리할 수 있게 만들어져 있다 그러다 보면 Close(); 를 해줘야 하는데 안 해줘도 처음에는 티가 안 나다가 점점 시스템이 느려지고 결국은 먹통이 된다 시스템이 먹통이 되는 여러 경우 중 하나가 Full GC이다 Full GC가 발생하는 순간, 자바 애플리케이션이 멈춘다. (Stop-the-world). 따라서 Full GC는 성능과 안정성에 아주 큰 영향을 미친다. 그래서 대부분의 경우에는 서버를 한대가 아닌 2대 이상을 보유한다 ⭐객체 하나에 Thread가 여러 개 ..

2022.03.12 반성 다짐 그리고 설계

순서상으로는 투표 로직을 이어서 업로드했어야 하지만 로직을 만들고 공부를 하면서 로직을 쓰고는 있는데 전혀 이해 못 하고 작성하는 느낌이 들어 공부했던 것을 전부 삭제했습니다 기존 방식이 적합한 방법이 아닌 것 같아 로직의 설계부터 차근차근 다시 시작해 보려합니다 강사님은 로직을 짜는 것도 중요하지만 가장 중요한 것은 로직을 설계하는 것이라고 강조해서 말씀해주셨는데 정말 맞는 것 같습니다 설계가 정확하게 머리에 없으니 강의 시간에 했던 로직에서 조금이라도 응용해야 하는 부분이 생기니 멍~ 해지는 경우가 많았던 것 같습니다 그래서 오늘은 설계부터 다시 차근차근 진행해 보겠습니다 우선 투표자 시스템을 만들려고합니다 목표 유권자가 후보의 목록을 보고 투표를 한다 그리고 투표 결과가 나온다 그러기 위해서는 유권..

2022.03.10. 투표 서비스 < 유권자 패키지>

유권자 패키지의 내용물도 후보자 패키지와 동일한 순서로 진행하겠습니다 유권자 패키지는 voter 이란 이름으로 설정했습니다 voter의 domain 즉 VoterVO를 먼저 만들어보겠습니다 @AllArgsConstructor @Getter @ToString public class VoterVO { private Integer vno; private String name; } 후보자 패키지의 VO와 마찬가지로 @AllargsConstructor (모든 생성자) @Getter (읽기전용이기에) @ToString 를 lombok를 사용해서 만들어 주었습니다 유권자 번호로 사용할 con 유권자 이름의 name를 만들어주면서 VO는 끝이 났습니다!! 항상 VO는 쉬운데....ㅎㅎ;; VoterDAO public ..

2022.03.10 투표 서비스 <설계 그리고 후보자 패키지>

오늘은 새로운 문법과 기술 등을 활용해서 투표 서비스를 만들어 보기로 했습니다 하암... 기존에 배웠던 것들도 사실 어색한데 엄청난 속도의 진행으로 머리가 터질 것 같네요 하지만 힘내서 달려보겠습니다 우선 가장중요한 설계!!!! 기본적인 설계는 이렇게 했습니다 로직은 후보자 패키지 -> 유권자 패키기 -> 투표 패키지 순으로 진행하려고 합니다 후보자 패키지 후보자 패키지는 후보자라는 뜻을 가진 candidate로 진행하려고 합니다 domain이라는 패키지를 만들어 그곳에 CandidateVO Class를 만들었습니다 여기서 VO는 Value Object를 말합니다 @AllArgsConstructor @Getter @ToString public class CandidateVO { //인스턴스 variabl..

2022.03.08 수업일지

오늘은 수업에 많은 이론 설명이 있었습니다 가장 처음 나왔던 이야기는 도메인에 관한 이야기였습니다 어제 만들었던 맛집 데이터 로직은 1차 도메인 오늘 새롭게 만들었던 맛집 리뷰 로직은 2차 도메인이라고 설명해주셨습니다 하지만 아직 도메인이 정확하게 무엇인지는 이해하지 못한것 같아 오늘 이해한 부분만 말해보자면 1차 도메인 : 장부로 떨어지는 단계 2차 도메인 : 1차 도메인이 있어야 행동할수있는것 이라고만 이해하고 넘어가도록 하겠습니다 !!! 그리고 로직의 설명에 앞서 이해해야 하는 중요한 키워드는 DTO 였던것 같습니다 DTO 데이터를 주고받기 위해 만들어준 것!! DTO를 만들 때 2가지 방법이 있는데 그 DTO의 사용 용도에 따라 나뉘는 것 같습니다 DTO 읽기 : 생성자로 객체를 생성할때 데이터 ..

돼지 저금통 만들기

클래스를 사용해서 돼지저금통을 만들어보자 로직 Class와 UI Class 그리고 Main으로 나누어서 만들어 보려고 한다 로직 Class 를 만들어 보자 PiggySave라는 이름의 로직 Class를 만들었다 public class PiggySave { //데이터 누적을 위한 변수 int current; } 그리고 데이터 즉 금액의 누적을 위해 변수를 하나 만들어주고 입금 로직 //입금 로직 //생성자 public int deposit(int money){ this.current = this.current+money; return this.current; } 입금 로직 을 만들어 주고 그 값을 current에 저장되도록 만들었다 출금 로직 //출금 로직 public int withdraw(int amo..

2022.03.07 수업 일지

오늘은 객체지향 과정에서 메모장에 정리해둔 파일을 객체지향으로 가지고 오는 과정에 대해 공부했다 우선 메모장에 1, 우레 옥, 37.111,127.111 2, 수정식당, 42.111,120.333 3, 목골 식당, 442.111,123.333 4, 짜라, 424.312,123.342 5, 햄버거, 424.123,123.234 맛집 관련 데이터를 만들기위해 식당 이름 좌표 번호 등을 메모장에 정리했다 이때 텍스트들을 ","로 구분하며 띄어쓰기는 하면 안 된다 (나중에 오류를 불러올 수 있다고 한다 ) 이렇게 만든 텍스트 파일을 c드라이브에 zzz라는 폴더 안에 저장했다 자 이제 객체지향아 덤벼라 !!!! 이 프로젝트의 목적은 맛집리스트를 사용자에게 보여주고 사용자는 그 맛집의 리뷰를 작성하는 프로그램을 만..