본문 바로가기

프로그래밍/Java5

[Java] 날씨 정보 가져오기(위도/경도 포함) build.gradle 파일에 gson 라이브러리 추가 날씨 정보 api에서 전달받은 json 파일을 파싱 하기 위한 gson 라이브러리 추가하기 https://mvnrepository.com/ 접속 gson 검색 사용할 버전 선택 사용할 방식 선택하여 추가하기 (Maven, Gradle, jar파일 다운로드 등...) dependencies { // https://mvnrepository.com/artifact/com.google.code.gson/gson implementation 'com.google.code.gson:gson:2.10.1' } 프로젝트 구조 만들기 위도/경도 DTO(Locale), 날씨정보 DTO(Weather) 위도/경도 Service(LocaleService), 날씨정보 Ser.. 2023. 12. 20.
[Java] 엑셀(Excel) 파일 읽기 (Feat.poi) Maven 추가 pom.xml 에 dependencies를 추가 org.apache.poi org.apache.poi poi 5.2.0 org.apache.poi poi-ooxml 5.2.0 org.apache.logging.log4j log4j-core 2.17.1 Load Maven Changes (Ctrl + Shift + O) Maven 변경사항을 적용 엑셀 경로 (프로젝트 최상위) 엑셀 읽어오기 FileInputStream file = new FileInputStream(new File("example.xlsx")); FileInputStream 클래스는 파일을 바이트 단위로 입력받아 출력할 수 있다. 워크북 생성, 시트 지정 Workbook workbook = WorkbookFactory.cr.. 2023. 11. 19.
[Java] MVC 패턴의 이해 MVC 패턴이란? 유지보수에 용이하고 가독성이 좋은 디자인 패턴중의 하나로써 Model-View-Controller 의 약어이다. 화면과 데이터 처리의 종속성을 줄이고 각자의 역할을 명확하게 한다. 다음 예제를 통해 MVC패턴에 대해 자세히 알아보도록 한다. 예제는 고객정보관리시스템으로 진행한다. Model 모델(Model)은 데이터 처리를 담당 public class Customer { private String name; private int age; private String phoneNumber; private String address; public Customer() { } public Customer(String name, int age, String phoneNumber, String ad.. 2023. 11. 17.
[Java] 다형성의 이해와 활용 다형성이란 무엇인가? 다형성이란 단어의 의미는 '같은 종이면서 어떤 형태나 형질이 다양하게 나타나는 현상' 을 얘기한다. 이와 비슷한 맥락으로 자바에서의 다형성이란 상위클래스가 동일한 메시지로 하위클래스를 서로 다르게 동작 시키는 의미로 이해하면 된다. 대표적인 예로 인터페이스, 추상클래스, 오버로딩, 오버라이딩, 업캐스팅, 다운캐스팅 등이 모두 다형성에 속해 있다. 다형성의 장점 유지보수가 쉽다. 확장이 용이하다. 다형성의 전제 조건 상속관계(extends)에 있어야 한다. 재정의(Override)가 가능하다. (필수 X) 업캐스팅(Upcasting) 동적바인딩 : 런타임 시점에 메서드가 결정된다. 다형성의 활용(예시) 1. 추상클래스 생성 public abstract class Animal { pub.. 2023. 11. 15.
[Java] 추상클래스(abstract)와 인터페이스(interface) 공통점 * 다형성을 보장하기 위해 등장한 개념 * 추상메서드를 가질 수 있다. * 단독으로 객체를 생성할 수 없다. * 부모의 역할로 사용한다. (Upcasting) 추상클래스 (abstract) 특징 (차이점) : 추상메서드와 구현메서드를 가질 수 있다. 상속(extends)을 받아서 사용한다. 1. 추상클래스 생성하기 public abstract class Person { // 구현메서드 3종 public void walk() { System.out.println("걷는다."); } public void run() { System.out.println("달린다."); } public void sleep() { System.out.println("잠을 잔다."); } // 상속받은 클래스에서 재정의가 .. 2023. 11. 14.