슈퍼코딩/주특기(JAVA) 44

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

강의stream, enum, optional에 대한 기초를 다짐I/O stream과 직렬화/역직렬화 내용은 좀 어려워서 이해하는데 시간이 걸림적용하는데 시간이 걸릴듯, 어디에 적용할지 아직은 감이 잡히지 않음멀티 쓰레딩과 디자인 패턴을 통해서 프로젝트 개선하기 좋아 보임팀회의팀원들이 많이 참여하지 않아서 2명이서 회의 진행각자의 강의 진행사항 및 어려운 점 공유서로 상황을 이야기하면서 피드백프로젝트 1) 신발 주문 시나리오 구현 심화깃허브 : https://github.com/kung036/java_task/tree/test/src/homework/day20240518

2024.05.17(금) 슈퍼코딩 신입연수원 7주차 Day 5 후기 - 디자인 패턴

강의63강(멀티 쓰레딩 프로그래밍) ~ 64강(디자인 패턴 소개)깃허브 : https://github.com/kung036/java_task/tree/test/src/practice/day20240517디자인 패턴디자인 패턴 : 소프트웨어 디자인 과정의 전형적인 해결책디자인 과정 : 코드 구현 전 설계 과정\GoF(Gang of Four)Java 디자인 패턴비즈니스 별 최적의 설계 노화우배우는 이유사내 업무 의사소통에 자주 사용프레임워크와 라이브러리 내부에 구현되어 있음종류생성 패턴 : 기존 코드의 유연성과 재사용성 증가하는 매커니즘 제공구조 패턴 : 객체들과 클래스들을 구조를 유연하고 효율적으로 유지하면서 더 큰 구조로 조립행동 패턴 : 알고리즘 및 객체 간의 책임 할당생성 패턴팩토리 메서드추상 메서드..

2024.05.16(목) 슈퍼코딩 신입연수원 7주차 Day 4 후기 - 신입 개발자 역량, 메소드 레퍼런스, 멀티 쓰레딩 프로그래밍

강의59강(Server-client 소개와 직렬화/역직렬화) ~ 63강(멀티 쓰레딩 프로그래밍)실습 코드 : https://github.com/kung036/java_task/tree/test/src/practice/day20240516신입 개발자에게 원하는 것 돌아가는 판의 흐름을 읽고 이해하기돌아가는 판다양한 자바 프레임워크다양한 자바 라이브러리복잡하고 많은 코드실무를 위해 익혀야 하는 기술과 지식자바AOPclean codeoptimizing디자인 패턴springlombokjcocomockito회사 실무 코드의 흐름을 일기 위해서 → 모든 프레임워크, 라이브버리, 고급 기술을 익힐 필요 X자주 사용하는 일부분만 알아도 됨메소드 레퍼런스자바 함수 가독성 진화일반 함수 → 람다식 → 메소드 레퍼런스Jav..

2024.05.15(수) 슈퍼코딩 신입연수원 7주차 Day 3 후기 - I/O Stream, client-server, 직렬화/역직렬화

강의57강(stream 사용하여 컬렉션 우아하게 사용하기) ~ 59강(Server-Client 소개와 직렬화/역직렬화)Java I/O Stream자바 입출력 스트림으로, stream API(collection의 stream)과 다른 개념입력 스트림(Input stream) : 자바 프로그램에서 자료를 읽을 때 사용하는 스트림출력 스트림(Output stream) : 자바 프로그램에서 파일을 저장할 때 사용하는 스트림단위바이트 스트림 : Byte(=1bits) → 자바 초기설정문자 스트림 : Char(=2Byte)1bit는 너무 단위가 적어서 더 큰 단위를 사용I/O StreamByte Stream(8bits)Input Byte Stream : ...InputStreamOutput Byte Stream :..

2024.05.14(화) 슈퍼코딩 신입연수원 7주차 Day 2 후기 - 유틸리티 클래스, 내부 클래스, 람다식, stream

강의55강(내부 클래스와 유틸클래스) ~ 57강(stream 사용하여 컬렉션 우아하게 사용하기)유틸리티 클래스 & 내부 클래스Java 클래스의 아쉬움 점클래스를 이용하려면 인스턴스화 해야함 → static 활용여러 클래스/메서드와 유사한걸 표현하려면 상속을 해야함 → 내부 클래스 이용해서 개념적 영역으로 그룹화한 번만 사용할 클래스를 새로 정의 → 내부 클래스 문법 이용유틸리티 클래스불필요한 인스턴스화를 할 필요가 없는 클래스클래스의 메서드는 전부 static으로 선언해서 인스턴스 없이 사용 가능public class MathUtils { public static final double PI = 3.14; public static int sum(int a, int b); return ..

2024.05.13(월) 슈퍼코딩 신입연수원 7주차 Day 1 후기 - Enum, Optional, DataTime

강의52강(예외처리) ~ 54강(강력한 데이터 관리)Enum열거형 데이터 타입보통 전부 대문자로 작성함Enum의 각 요소들은 독립된 특수한 클래스로 구분되는 인스턴스Enum 클래스는 method 영역에 저장 → 다른 클래스에서 Enum의 인스턴스를 선언하게 되면 heap에 객체가 구현되고, 이때 인스턴스는 method 영역의 주소를 참고함Switch문과 함께 사용하면 좋음장점가독성, 직관성 ↑허용된 값만 사용가능해서 안전성 ↑구현(Day.java)// Day.javapublic enum Day { MONDAY("월요일"), TUESDAY("화요일"), WEDNESDAY("수요일"), THURSDAY("목요일"), FRIDAY("금요일"), SATURDAY("토요일"), S..

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

강의 내용자바 중급 과정 공부collection, JVM에 대해서 자세히 공부할 수 있어서 자바에 대한 이해도가 높아짐작은 코드 하나라도 의미를 아는 것이 중요작은 코드들이 모여서 엄청난 성능 차이를 일으킴 팀회의기본주차 마지막 프로젝트 발표 진행총 4명이 회의 참여그 중 나 포함 2명이 프로젝트를 완료해서 게임 발표다른 팀원이 발표한 프로젝트에서는 드래그를 통해서 단어 선택이 가능했음

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..