Dev/Java
-
[Java 응용] 12. 설계 원칙, 디자인 패턴Dev/Java 2023. 3. 26. 23:46
📘 응용 12장 설계 원칙, 디자인 패턴좋은 설계 원칙이란?널리 알려진 설계 원칙을 배우고 의식하며 개발을 하자. 주요 코드 작성 원칙DRY, PIE, SRP, OCP, SDP, ADP + DIP, ISP, LSK DRY - Don’t Repeat Yourself : 같은 것을 몇번씩 반복하지 말라중복되는 코드가 있다면 메서드로 분리한다. PIE - Program Intently and Expressively : 명확하고 표현력 있게 기술하자 SRP💡기능이 많은 거대 클래스는 테스트도 어렵고 유지 보수도 어렵다.💡단일 책임 원칙 - 1개의 클래스는 1개의 일만한다. - 한 부분의 에러를 수정하기 위해서는 그 클래스만 수정하면 된다. - 하지만 클래스 분리가 심해지면 오히려 관리가 어렵기도 하다. OCP ..
-
[Java 응용] 11. 스레드(Thread)를 사용한 병렬 처리Dev/Java 2023. 3. 26. 23:45
👀 유용한 정보eclipse 에서 코드 계층 구조 보기f3 해당 타겟으로 가기 → 우클릭 → Open Call Hierarchy 💡피드백 Tip함수형 프로그래밍의 장점💡기존의 if, for문 개발자가 실수할 수 있는 요소들이 많았다. (추가적인 변수 사용, 조건, 분기 제어 등) Stream을 사용한 함수형 프로그래밍은 추가적인 변수를 사용하지 않아도 처리가 된다. 따라서, 개발자의 실수를 줄일 수 있다.Lambda의 축약💡코드의 가독성을 위해 Lambda 식을 사용할 때 축약이 가능할 때에도 타입 등을 명시해두는 것이 좋다.소프트웨어 테스트의 주요 접근 방식1. 화이트 박스 테스트💡White Box Testing은 소프트웨어의 내부 구조와 코드를 분석하여 테스트 케이스를 설계하는 방식입니다. 소프트웨어..
-
[Java 응용] 10. Java Unit Test (JUnit)Dev/Java 2023. 3. 26. 23:45
📘 입문 응용 10장 Java Unit Test잘못된 개발의 완성 기준💡클래스를 작성했다고 완성했다고 말할 수 있는가? 올바른 완성의 기준💡실제 개발에 있어서 품질까지도 고려해야 한다. 품질을 고려한다면 실제 완성까지 더 많은 시간이 필요할 수 있다. 테스트를 통한 품질 향상테스트 하는 방법들💡수동 테스트 : 인간이 하는 테스트 단위 테스트 : 1개 클래스를 테스트통합 테스트 : 여러개 연관된 클래스를 함께 테스트 단위(Unit) 테스트단위 테스트란?💡특정 모듈이 의도한 대로 잘 작동하는 가를 테스트하는 것💡단위 테스트는 소프트웨어 개발 방법론 중 테스트 주도 개발(TDD)을 따르는 경우 더욱 중요해지며, 개발자가 작성한 코드가 예상대로 동작하는지를 검증하는 것이 목적 Java Unit Test💡자바 단..
-
[Java 응용] 8. 네트워크 통신Dev/Java 2023. 3. 26. 23:45
📘 입문 응용 8장 네트워크 통신URL을 사용한 고수준 액세스💡고수준 : 사람이 이해하기 쉽게 작성된 프로그램 및 API URL이란 💡URI (Uniform Resource Identifier) 인터넷에서 사용되는 통합 자원 식별자를 의미 URI는 인터넷상의 모든 자원을 식별할 수 있는 고유한 주소를 나타냄 URL과 URN이 포함된다. URL (Uniform Resource Locator) 인터넷상의 자원이 어디에 있는지를 알려주는 URI의 하위 집합 URL은 특정 웹사이트, 파일, 데이터베이스 등 인터넷상의 모든 자원을 식별 가능 → 예를 들어, "https://www.example.com/index.html"과 같은 주소가 URL이다.URN (Uniform Resource Name) URI의 다른 하..
-
[Java 응용] 5. 람다식과 함수, 스트림Dev/Java 2023. 3. 26. 23:44
📘 응용 5장 람다식과 함수, 스트림1급 객체💡1급 객체란, 변수에 대입 가능한 객체를 1급 객체 (first class object) 라고 한다.대표적 1급 객체 : 값, 인스턴스, 배열 함수 (function)💡Java8에 추가된 개념 : 함수도 1급 객체로 취급 된다. 함수란, 입력에 대해 처리 후 출력하는 것y = 2x + 3 메서드를 변수에 대입하여 사용하는 예import java.util.function.IntBinaryOperator; public class Main { public static int add(int x, int y) { return x + y; } public static void main(String[] args) { // 미리 정의된 인터페이스 // 위에 정의한 add(..
-
[Java 응용] 7. 여러가지 파일 형식 (CSV, properties, XML, JSON, 직렬화)Dev/Java 2023. 3. 26. 23:44
📘 응용 7장 여러가지 파일 형식CSV💡CSV : 데이터를 콤마로 나눈 형식 StringTokenizer 클래스를 사용하면 토큰별로 데이터를 읽을 수 있어서 편리하다. 프로퍼티 형식의 파일 읽기 data.properies 파일의 내용💡Properties 클래스를 사용하여 Key - Value 쌍으로 읽고 쓰기가 가능하다. 간단하게 key=value 형태의 데이터의 값 얻기 쉽다. 프로퍼티 형식의 파일 쓰기💡setProperty() 메서드로 데이터를 셋팅하고 store() 메서드로 저장 XML 형식💡- 태그를 활용한 기술 방식 - 포함관계를 기술할 수 있음 DOM Parser, SAX Parser 등을 통해 파서를 제작할 필요가 있다. XML 내부 값을 가져오기 어렵다. 내부 값을 파싱하는 파서를 구현해서..
-
[Java 응용] 6. 파일 조작Dev/Java 2023. 3. 26. 23:44
📘 응용 6장 파일 조작파일 조작의 기본 순서💡1. 파일을 연다 2. 파일을 읽거나 쓴다 3. 파일을 닫는다 FileWriterimport java.io.FileWriter; import java.io.IOException; public class Main { public static void main(String[] args) throws IOException { // 파일 열기, append 모드 FileWriter fw = new FileWriter("data.txt", true); // 내용 작성 fw.write("Hello World"); fw.flush(); // 실제 파일 쓰기 시작 fw.close(); // 파일 닫기 } } FileReaderimport java.io.FileReader;..
-
[Java 기초] 15. 예외Dev/Java 2023. 3. 26. 23:42
💡주말 과제 피드백💡- 계산과 같은 기능 만을 가진 유틸성의 클래스는 static으로 선언하는 것이 좋다. ex) Arrays.sort() - 그 외에는 static 사용을 지양한다.💡생성자를 private로 선언하면 인스턴스 생성을 금지할 수 있다.💡메서드에서 Scanner를 인자로 받는 것은 좋지 않다. (재활용성) → 스캐너로 이미 받은 값을 받는 것이 좋다. ’나’ 표현 : me 각 공사장과 그늘의 position을 position 클래스로 분리하고, 그 position 클래스에 x, y 좌표 값을 가지고 각 공사장과 그늘은 position 객체를 필드 속성으로 가지는 설계도 좋을 듯 하다.💡package클래스의 각 기능별, 객체 등으로 나누어 저장하면 좋다.📘 15장 예외 (Exception)💡..