Coding 67

Spring Framework 스터디 시작

약 2주(10일..!)간의 JAVA 가 끝나고 8/16~ 부터 6주의 Srping Framework 스터디가 시작되었다. 2주도 쏜살갇이 지나갔는데, Spring은 벌써 어려운 기분... 욕심부리지 말고 6주간 지치지 않고 완료하는걸 목표로 차분히 진행해보자. 학습 플랫폼 : UR Class 장소 : 코드스테이츠 마곡교육장(대부분 온라인강의) Tool : IntelliJ Ultimate(유료버전) 기록 : Notion, Tistory git : https://github.com/youngH02/LGSpringBoot/tree/main 자바 스터디 시작

JAVA 미니 프로젝트 : BurgerQueen

java 수업과 더불어 약 1주일간(8/7~8/14) 함께 진행한 미니 PJT 버거퀸 주문 프로그램 만들기 https://github.com/youngH02/burgerqueen/tree/final_burger 메뉴 보여주고 입력받아서 장바구니 + 할인혜택 넣어주는 프로그램이다. 객체를 만들고 서로 의존관계를 가지고, 클래스 간에 어떻게 사용해야 할지에 대해 고민을 많이 했던 것같다. 막막했는데, 여차저차 일단 완성은 했다. 1. 메뉴화면 및 판매상품 정보 - 메뉴별로 객체를 만드는데 상속을 통해 다형성 사용하기 - 출력 시 각 상품의 카테고리 정보를 가지고 카테고리별로 정렬 - 사용자에게 입력받은 메뉴 번호와 각 상품을 일치시키고 장바구니로 담기 - 메뉴 구분을 위해 메뉴인스턴스 생성 시 고유한 id값..

Coding/언어-JAVA 2023.08.17

JAVA Q&A

공부하며 궁금했던 내용 정리. Q. 이터레이터 사용 시 장점? for문으로도 가능한데, 객체를 만들어가면서 쓰는게 더 좋은지? A. 이터레이터 사용 시 생성되는 객체는 작은 수준이라 프로그램 성능 등에 영향을 미치지 않는 정도이고, for 문으로도 가능하지만 이터레이터를 사용하게되면 사용상 편리해짐. 내부적으로 iterator의 동작 속도가 훨씬 빠름. Q. List 에서 중복된 데이터는 삭제 시 한개만 삭제되는지? A. 중복된 값이 있더라도, 제일 먼저 조회되는 값만 삭제 됨 Q. LinkedList 에 들어간 값이 숫자면 삭제 시 파라미터 어떻게 인식하는지? A. 숫자는 int이고, LinkedList에 들어가는 값은 Integer 객체 이므로 값인 를 삭제하려면 Integer.valueOf로 변경해..

Coding/언어-JAVA 2023.08.17

JAVA 메서드 활용

int형 1~100사이 랜덤숫자 생성 (int) (Math.*random*() *100+1), //1~100 int형 길이(자릿수) 구하기 int length = (int)(Math.log10(num)+1); string 출력 String.format("현재 시각은 %s시 %s분 %s초 입니다.", hour, min, sec); hashMap 이터레이터 (Entry 사용) Set hashKeySet = hashMap.entrySet(); Iterator it = hashKeySet.iterator(); Collection 초기화 시 값 넣기 HashSet hashSet = new HashSet(Arrays.asList(14,5,6,1,2,2,3,4,5,6,7,8,9)); HashSet hashSet = ..

Coding/언어-JAVA 2023.08.17

JAVA 스레드(Thread) #Day10

프로세스 : 실행중인 애플리케이션 스레드 : 프로세스 내에서 실제로 작업을 수행하는 주체 싱글 스레드 : 순차처리 멀티 스레드(스레드 n개) : 1개(코어)가 번갈아가면서 처리 → 동시성 Concurrency 여러개 스레드가 각각 처리 → 병렬성 Parallelism 스레드 생성방법 자바에서는 스레드도 클래스로 구현되어 객체로 사용되며, run() 메서드 내에 스레드가 처리할 작업을 작성 스레드 실행 시 .start() (.run()아님) 1. Runnable 인터페이스를 구현한 클래스에 run()을 정의 Thread 객체를 생성하고 사용(파라미터로 run() 메서드객체) 2. Thread클래스를 상속 받은 하위 클래스에서 run()을 정의 단일 상속으로 다른 클래스 상속이 필요할 경우 사용성 제한됨 /..

Coding/언어-JAVA 2023.08.17

JAVA 파일입출력(File I/O) #Day9

스트림(Stream) : 데이터 입출력 데이터 입출력 채널(스트림)을 열어야 읽고쓰기가 가능해짐. 스트림은 단방향으로만 데이터를 전송할 수 있기 때문에 입력과 출력 각각의 stream이 필요 예외처리 반드시 필요(ex. 파일 입출력, 네트워크, 스레드) 파일 입출력 : 바이트 스트림(1byte) : 문자, 이미지, 영상, 오디오 등 멀티미디어 가능하며 이진형태. FileInputStream / FileOutputStream BufferedInputStream / BufferedOutputStream 문자 스트림(2byte) : 문자만 가능, 문자열의 코드값이 이진데이터로 저장됨 FileReader(유니코드로 변환) / FileWriter(인코딩으로 변환) BufferedReader / BufferedWr..

Coding/언어-JAVA 2023.08.17

JAVA 사용자 입출력(Scanner, Printf)

사용자 입력 Scanner .next() : 띄어쓰기로 구분해서 값을 하나씩 받음 띄어쓰기 단어를 여러개 입력할 경우 다음 입력값에도 영향을 미치는데 .nextLine()으로 불필요한 문장을 삭제 할 수 있음 .nextLine() : 한 줄 전체를 입력으로 받음 Scanner sc = new Scanner(System.in); String name = sc.next(); name = sc.nextLine(); // 숫자 입력받기 int age = Integer.parseInt(sc.next()); age = sc.nextInt(); //정수형 아니면 오류남 double weight = Double.parseDouble(sc.next()); weight = nextDouble(); 출력 정수 출력 : %d..

Coding/언어-JAVA 2023.08.17

JAVA 스트림(Stream) #Day8

스트림(Stream) : 데이터의 흐름 _ 자바 8이후 도입 ⇒ 스트림에 있는 메서드를 어떻게 사용할 수 있을지 익히는 것 컬렉션이나 배열, 파일 등 데이터들을 가지고 람다식을 활용하여 반복처리하는 문법요소 (컬렉션프레임웍이랑 연결해서 많이 씀) 코드를 직관적으로 이해하고 작성할 수 있고, 다양한 유형의 데이터를 일관된 방식으로 다룰 수 있음 (→ 너무 복잡해 지기 시작하면 가독성이 더 떨어짐) 스트림 특징 : 1. 생성, 중간연산, 최종연산 3단계의 파이프라인으로 구성할 수 있다 컬렉션, 배열로부터 스트림을 생성하고(오리지날 스트림) → 중간연산으로 구현하여 처리 후(filter, map, …) → 최종연산으로 결과를 내놓고 끝 중간연산은 여러개 가능하나, 최종연산은 1번만 가능하며 반드시 있어야 함 ..

Coding/언어-JAVA 2023.08.16

JAVA 익명클래스, 람다 #Day8

익명클래스(inner클래스 중 하나) 객체의 선언과 생성을 동시에 하여 오직 하나의 객체를 생성하고, 단 한 번만 사용되는 일회용 클래스 익명 객체 : 자기 자신을 만드는 클래스의 이름이 없는 객체(클래스 없이 만들어지는 객체) → 1회용 객체(클래스는 여러개의 객체) 익명 자식 객체, 익명 구현 객체(인터페이스를 구현해서 만드는 객체, 인터페이스 타입의 참조변수에 할당할 수 있다.) 1. 기존에 정의된 클래스를 활용하여 이름없이 객체 생성 시 오버라이딩하여 사용 객체를 상속해서 다른 클래스로 정의한게 아니고, 그때그때 새로운 익명클래스 객체를 만들어 반환함 public class _01_AnonymousClass1 { public static void main(String[] args) { Coffee..

Coding/언어-JAVA 2023.08.16

JAVA 에너테이션 #Day7

에너테이션 Annotation 소스코드가 컴파일되거나 실행될 떄 컴파일러 및 다른 프로그램에게 필요한 정보를 전달 즉, 주석(대상: 사람)과 유사하나 대상이 다른 프로그램임 @로 시작하며, 클래스, 인터페이스, 필드, 메서드 등에 붙일 수 있음 에너테이션 종류 표준 에너테이션 : JDK에서 기본으로 내장하고 있음 메타 에너테이션 : 커스텀 에너테이션을 정의할 때 사용 커스텀 에너테이션 : 커스텀 에너테이션을 만들기 위해 사용하는게 메타 에너테이션 1. 표준 에너테이션 @Override (메서드앞에만 가능) 상위 클래스의 메서드를 오버라이딩하거나 추상 메서드를 구현하는 메서드라는 것을 컴파일러에게 알려주는 역할 컴파일러 한테 오버라이드라고 알려줘서 오류를 찾는데 좀더 쉽게함 @Deprecated 더 이상 ..

Coding/언어-JAVA 2023.08.12