본문 바로가기

분류 전체보기117

23/10/27 1. 오늘 특강에서 강하게 머리속에 들어온것중 첫번째로는 프로그래밍에 관련된 글이나 깃허브 다른사람 코드 보는게 중요하다 했다. 이유는 이렇게하면 표현하는게 늘고 사고를 흡수한다해서 그렇다. 두번째로는 작업하다가 에러들을 만나는데 에러 복붙으로 해결만 하고 끝내지말고 고민해보고 고민한걸 글로 남겨보라 하셨는데 맞는말 같다. 예전에 어떤 에러 일어났을때 복붙 검색으로 해결하고 나중 또 같은 에러를 복붙 검색으로해서 기억에 안남으니 그렇다. 2. 팀프로젝트 진행하면서 인텔리제이에서 제공해주는 다이어 그램이라는거를 알게됬는데 중요하고 많이 사용 할 것 같다. 생각해보니 프로젝트랑 관련 없는 아예 다른 사람이 코드를 보면 처음부터 당연히 이해하기 어렵고 무엇인지 잘 모를테니 처음 구조,흐름을 이해하기 쉽도록 하.. 2023. 10. 27.
23/10/24 1. 오늘부터 자바 팀과제 시작인데 일단 각자 자기만의 구상도를 만들어보자해서 한시간동안 했는데 처음이라 그런지 구조를 어떻게 해야하나 생각도 안나고 어려웠다... 객체지향도 어색한 상태라 더욱 그랬다.. 이렇게 만들고 각자 자기꺼 말해보면서 누구꺼로 할지 정했는데 먼가 거의 다들 비슷해서 다른분꺼로 결정했다 2. 오후에 자바의 보중/심화반 OT때 들은것중 클래스,변수,메소드등 이름 정하는 규칙 또 새로 들었는데 클래스랑,변수는 파이썬이랑 같은 규칙같다. - 클래스명 맨앞은 대문자 - 변수명 맨앞는 소문자 - 메소드명은 동사명사순 3. 저녁에 깃 특강에서도 처음 들은게 있는데 .gitignore안에 설정하는 코드들을 Toptal 프로그램인가 gitignore.io 사이트에서 내가 직접(맥,윈도우,인텔리제.. 2023. 10. 24.
23/10/23 1. 주말에 싱글톤에 대해 친구랑 말해보고 가족이랑 말해보면서 먼가 약간 느낌 온 것 같다. 싱글톤은 전역으로,싱글톤이 아닌건 지역으로 생각하면 될 것 같다. 내가한 키오스크 개인과제를 생각해보면 장바구니는 싱글톤,상품을 선택하는 상품클래스는 메뉴클래스의 메소드안에서 계속 상품 클래스 인스턴스를 새로 생성하고 그 인스턴스로 상품 메소드를 실행 시켰다. 여기서 생각해보면 상품 클래스의 메소드는 static으로하고 상품 클래스 자체로 실행 시키는거로 했어야하는듯하다. 그리고 장바구니는 싱글톤으로 한 상태인데 알고보니 싱글톤을 하면 안되는거였다. 왜냐하면 주문자가 한명이 아닌 여러명인데 모두 장바구니 공유해서 사용하는건 말이 안되기때문에 그렇다. 지금이야 서버 운영하는것도 아니라 상관없으나 이런 생각은 지금부.. 2023. 10. 23.
23/10/20 1. 개인 과제로 어제 튜터님이 내 코드는 객체지향쪽 보단 절차지향느낌 난다 해고 solid원칙을 읽어보라 해서 오늘은 일단 SRP인 단일책임원칙 부분을 읽어봤다. 읽어보니 말들이 어려워서 아직 확실히 머르나 느낌적으로는 * 두클래스가 있는데 비슷한 책임을 중복해서 갖고 있으면 부모클래스를 이용해서 거기에 비슷한 행동을 추가해라 그런다. * 어떤 클래스에 필드,메소드들이 있는데 변화할수 없는 고유 정보는 그대로 냅두고 변화가 일어나는 필드,메소드들은 다른 클래스에 넣는다. ex) Guitar클래스가 있는데 변하지 않는것들은 여기에 두고 GuitarSpec 클래스에는 변화하는것들 넣기 * 클래스는 자신의 이름을 나타내는 일을 해야하고,각 클래스는 단 하나의 책임만 가져야한다. 예를들어 어떤 한클래스있는데 .. 2023. 10. 20.
23/10/18~19 1. 4주차 과제에서 내가 푼 방법이랑 답안지랑 비교해보다가 답안은 switch문을 사용할때 break문을 안적어서 이러면 나머지 코드도 다 실행하지 않나 생각 들었는데 알아보니 자바12부터 도입된 스위치문에서 화살표 이용하면 break문 따로 적지 않아도 된다 했다. 이렇게 두줄이상 일때 {} 할때도 break필요한지 알아보니 필요없다했다. case "+" -> { this.calculator.setOperation(new AddOperation()); System.out.println("더하기 입니다"); } 결론적으로 스위치문을 이렇게 break없이 할 수 있다. switch (operationInput) { case "+" -> this.calculator.setOperation(new AddOp.. 2023. 10. 19.
Java_5주차-(2) 1.join() * 정해진 시간동안 지정한 쓰레드가 작업하는 것을 기다린다. * 괄호안 시간을 지정하지 않으면 지정한 쓰레드의 작업이 끝날 때까지 기다린다. * join은 static형이 아니라 특정 쓰레드를 지정 할 수 있다. * 밑에 코드를 보면 Main쓰레드는 thread의 작업 종료전까지 기다려서 5초 지난 순간 "체크"출력하고 "소요시간 5.0003" 출력한다. public class Main { public static void main(String[] args) { Runnable task = () -> { try { Thread.sleep(5000); // 5초 System.out.println("체크"); } catch (InterruptedException e) { e.printStac.. 2023. 10. 17.
Java_5주차-(1) 1. Thread 와 Runnable *java에서 제공하는 Thread 클래스를 상속받아 쓰레드를 구현해준다. *run()메소드에 작성된 코드가 쓰레드가 수행할 작업이다 *java에서 제공하는 Runnable 인터페이스를 사용하여 쓰레드를 구현해준다. 1. 싱글 쓰레드 public class Main { public static void main(String[] args) { Runnable task = () -> { System.out.println(Thread.currentThread().getName()); // 쓰레드 이름을 출력 (main출력) for (int i = 0; i < 100; i++) { System.out.print("$"); } }; System.out.println(Threa.. 2023. 10. 16.
Java_4주차 1. 오류 vs 예외 *오류는 일반적으로 회복이 불가능한 문제 / 예외는 일반적으로 회복이 가능한 문제 *현실적으로 코드레벨에서 할 수 있는 문제상황에 대한 대응은 “예외처리”에 속한다. 2. 예외의 종류 3. 예외를 직접 정의하기 이미 자바 자체에서 구현해 놓은 예외들이 많이 있는데 어떤 에러 일어났는데 그 예외가 없을시 내가 직접 그 예외를 따로 정의 할 수 있다. ex)↓ 4. throw,throws throws는 그 자리에서 예외처리 하는게 아닌 부른쪽에서 예외 처리 하는거다. 캡처보면 밑에 writeFile() 함수가 있는데 옆에 throws IOException이 있다 (IOException는 여러 예외중 파일관련 예외) 이건 이 함수에서 예외 처리 안하고 이 함수를 호출한곳에서 예외 처리를 .. 2023. 10. 16.
Java_3주차-(2) 1. 자식 클래스가 상속 받아 부모 클래스 기능을 사용중인데 부모 클래스가 클래스에 final할시 더 이상 상속 할 수 없어서 부모의 기능 사용 못한다. 부모클래스의 일부 메소드에 final하면 그 메소드는 오버라이딩 할 수 없는 메소드로 변한다. 2. Object 클래스는 java 내 모든 클래스들의 최상위 부모 클래스이다. 따라서 모든 클래스는 object의 메소드를 사용 할 수 있다. 3. 오버라이딩은 부모클래스로부터 상속받은 메소드를 재정의 하는걸 뜻한다 오버라이딩 하기 위한 조건 *선언부가 부모클래스의 메소드와 일치해야 한다. * 접근 제어자를 부모 클래스의 메서드 보다 좁은 범위로 변경할 수 없다. * 예외는 부모 클래스의 메서드 보다 많이 선언할 수 없다. 4. super *super는 부모.. 2023. 10. 13.