전체 글 317

2024.05.10(금) 슈퍼코딩 신입연수원 6주차 Day 5 후기 - Throwable

강의49강(big picture) ~ 52강(예외처리)품질 좋은 코드성능이 좋은 코드데이터와 사용자가 늘어나도 한정된 리소스를 통해 활용 가능버그와 예외 방어하는 안전한 코드악의적 요청(해킹) 대응특정 시스템의 사고 발생 대처가독성과 코드 재사용성이 좋은 코드요구사항 변경 대응 ↑협업에 좋음버그 처리자바 입출력로컬 파일 입출력프로토컬을 사용한 외부 입출력(ex. API)버그(Throwable 클래스)오류(error)통제 불가능 실행하는 컴퓨터 자체의 문제JVM 오류예외(exception)통제 가능Check Exception : 무조건 처리해야하는 예외Uncheck Exception : 처리하지 않아도 되는 예외발생 원인개발자 코드 실수코드상으로는 구현되지만 비즈니스적으로(논리적으로) 맞지 않은 요청외부 ..

2024.05.09(목) 슈퍼코딩 신입연수원 6주차 Day 4 후기 - Collection(List, Set, Map), Hash, Tree

강의46강(컬렉션 List 만들기) ~ 48강(wrap-up)Collectioncollection frameworkjava.util 패키지 내 존재Collection 인터페이스Map 인터페이스 StructureArray 구조연속적인 메모리 구조인덱스를 이용해서 값 접근 속도가 빠름새로운 데이터 공간을 할당해야 하기 때문에 데이터 추가 및 삭제 속도는 느림Node 구조포인터를 이용해서 앞, 뒤 노드의 위치를 알 수 있음포인터를 통해서 다음 값에 접근하기 때문에 값 접근 속도가 느림포인터값만 변경하면 되기 때문에 데이터 추가 및 삭제 속도는 빠름비교 ArrayNode장점- 빠른 접근 속도- 메모리 공간 효율성 ↑- 동적 크기 조정 가능 → 구조 변경 용이- 빠른 삽입 및 삭제단점- 어려운 크기 조절- 삽입 ..

2024.05.08(수) 슈퍼코딩 신입연수원 6주차 Day 3 후기 - Wrapper, Generic

강의44강(여러 기분 클래스) ~ 45강(자바 제너릭과 Wrapper)Wrapper기본 자료형을 위한 클래스박싱과 언박싱박싱(Boxing) : 기본 타입 → 래퍼 클래스언박싱(Unboxing) : 래퍼 클래스 → 기본 클래스정리기본 타입래퍼 클래스byteByteshortShortintIntegerlongLongfloatFloatdoubleDoublecharCharacterbooleanBooleanvoidVoid요즘은 오토박싱, 오토언박싱이 이루어짐박싱을 사용하지 않은 추세 ex) Integer integer = 20;기본자료형과 wrapper 클래스들끼리 혼합해서 사용 가능new 생성자를 이용해서 선언한 경우, 같은 같이어도 == 연산자에서는 false가 나옴equals는 true속도 : 기본타입 > w..

2024.05.07(화) 슈퍼코딩 신입연수원 6주차 Day 2 후기 - JVM 메모리, GC, Object, 기본 클래스

강의41강(JVM 메모리 런타임) ~ 44강(여러 기본 ㅡ클래스)JVM 메모리 런타임java 기본형논리형 : boolean문자형 : char정수형 : byte, short, int, long실수형 : float, doublejava 참고형java 기본형을 제외한 모든 것종류 : array, 클래스, 인터페이스, enum 등...생성new를 이용해서 생성 → JVM Heap 메모리 점유객체 생성기본형 : 값 자체 지칭참조형 : 저장된 공간 주소 지칭(이때 null은 아무것도 지칭하지 않았다는 의미)String 객체 생성String str1 = "Student"; → String Pool(상수 풀)에 저장됨, 같은 리터럴은 같은 주소를 가짐String str2 = new String("Student");  ..

2024.05.06(월) 슈퍼코딩 신입연수원 6주차 Day 1 후기 - JVM

강의39강(Big Picture) ~ 40강(JVM 원리) 실무 백엔드 에러비즈니스 로직 에러코드는 정상적으로 돌아가지만 원하는 로직이 동작하지 않음시스템 버그데이터베이스 에러네트워크 에러JVM 에러 → JVM 모니터링을 통해서 예방Java 기초실습 : Java RAM 메모리 할당IntelliJ → Modify Run Configuration … → Modify Options → Add VM options → -Xmx1M 입력-Xmx1M : 최대 RAM의 heap 메모리값을 1mbyte 할당컴파일 : .java 파일을 .class 파일로 변경하는 빌드 과정컴파일 에러Syntax ErrorType Check Error런타임 : 실행 과정런타임 에러메모리 부족 에러null reference errorInte..

슈퍼코딩 신입연수원 5주차 후기

요즘 흔들리고 있고 java 기초에 대해서 공부할 수 있어서 좋았음특히 인터페이스와 추상화의 차이점에 대해서 제대로 알고 구현을 통해서 몸에 익힘이번주 수요일에 팀회의를 진행했고, 다음주 주말까지 기초주차의 마지막 과제인 word search 게임 클론 코딩한 결과를 공유하기로 함원활한 소통이 되지 않은 팀원들이 있음프로젝트 1) 신발 주문 시나리오 구현깃허브 : https://github.com/kung036/java_task/tree/test/src/project/groupleader1고객이 매장 직원을 통해서 신발을 주문하고, 재고가 없는 경우 배달 기사를 통해서 신발을 주문받는 시나리오를 JAVA OOP를 이용해서 구현

2024.05.03(금) 슈퍼코딩 신입연수원 5주차 Day 5 후기 - 추상 클래스, 인터페이스

강의35강 ~ 38강추상화필요한 특징만 모아두는 것JAVA의 코드 추상화 : 공통 부분을 정의해 코드 중복을 중이고 다형성 실현Java에서 추상화 제공 : 추상 클래스, 인터페이스 추상 클래스(Absctract) 하위 클래스의 공통적인 변수, 메소드를 정의한 클래스선언 : abstract class상속 : extends특징인스턴스화 Xabstract 없는 메서드는 구현 가능abstract 메서드 선언만 함, 구현 X → 하위 클래스에서 구현되어야 함업캐스팅(강제 형변환) 가능하나만 상속 가능 인터페이스(Interface) 객체 간의 소통이 가능하도록 설계한 기능 구현을 설계하는 추상화 문법선언 : interface상속 : implements자동선언변수 → 자동으로 static final 추가됨메서드 → ..

2024.05.02(목) 슈퍼코딩 신입연수원 5주차 Day 4 후기 - 다형성

강의33강(다형성) ~ 34강(객체-상속-실무)다형성하나의 타입이나 메소드가 여러 타입이나 메소드들을 가지거나실행하는 능력java에서는 상속을 통해서 다형성 구현업 캐스팅다운 캐스팅(= 강제 형변환)instanceof객체 타입(선언된 클래스)을 확인하는 연산자형변환 여부를 boolean 값으로 반환사용 : 객체 instanceof 클래스다운 캐스팅다운 캐스팅 예시// Animal : 부모 클래스// Cat, Dog : 자식 클래스// 가능Animal animal1 = new Cat();Cat cat1 = (Cat) animal1;// 불가능Aniaml animal2 = new Animal();Cat cat2 = (Cat) animal2;// 불가능Animal animal3 = new Cat();Dog d..

2024.05.01(수) 슈퍼코딩 신입연수원 5주차 Day 3 후기- static, 상속

강의29강(객체간의 협력) ~ 32강(객체의 상속)Static여러 객체들이 공유하는 값을 선언하기 위한 예약어 데이터 영역 메모리에 static 값이 저장되어 있고, 각 객체들은 static 값을 읽음으로써 공유static 변수(= 정적 변수, 클래스 변수)프로그램 실행 시 생성되는 정적 변수로, 인스턴스를 생성하기 전에 정의되어 있음"클래스명.정적변수" 와 같은 형태로 호출 가능static 메서드static 변수만 호출해서 사용가능, 인스턴스 변수는 사용 불가능static 블록클래스 내에 static으로 블록 선언클래스 로딩 시 자동 실행class Test { static { System.out.println("동작"); }} 변수클래스 변수(static 변수) : static이 붙은 변수..

2024.04.30(화) 슈퍼코딩 신입연수원 5주차 Day 2 후기 - 정보은닉

강의26강(자바 클래스와 객체) ~ 29강(객체간의 협력)정보은닉정보은닉접근 제어자를 통해서 객체 간의 정보 공유 범위 지정중요성코드 보안성 증가용이한 유지보수객체지향 캡슐화 실천접근 제어자제어자classpackagechild classallpublicOOOOprotectedOOO defaultOO  privateO    필드 접근자 메소드private 또는 default 멤버 필드의 값 조회 및 수정하는 메소드보통 멤버변수명 앞에 get 및 set를 붙여서 메소드명 선언getter, setter this클래스 내에서 자기 자신을 가리키는 지칭주의 : 클래스 자체 멤버 값이 아닌 인스턴스의 멤버 값 의미Heap 메모리에 생성된 인스턴스 자신의 주소 프로젝트 진행1. 시나리오 생성2. 객체 선택3. 각 객..