본문 바로가기

java11

[Firebase] Firebase SDK(Java)를 사용하여 이미지 업로드/다운로드 뉴스피드 앱에서 게시물 기능을 개발하면서 이미지와 글을 게시물로 등록, 조회, 수정, 삭제하는 기능을 구현해야 했습니다. 글을 등록하는 것은 문제가 없었지만 이미지를 등록하는 방법에 대해서 고민했습니다. 첫번째는 이미지를 어디에 저장할까 였습니다. 1. 서버 데이터 디스크에 이미지 보관2. 클라우드 스토리지에 이미지 보관 저는 위 2가지 방법 중 '클라우드 스토리지에 이미지를 보관' 하는 방법을 채택 했습니다. 그 이유는 앱이 배포되어 있는 서버가 1대면 상관없지만 트래픽에 대한 관리가 중요한 만큼 부하 분산을 위한 서버가 여러 대 일 경우 공유해서 사용할 스토리지가 필요할 것이라 생각했습니다. 클라우드 스토리지에 이미지 보관해당 프로젝트에서는 Firebase Blob Storage를 사용하여 이미지를 .. 2024. 10. 22.
[Java] 정적 멤버 자바는 클래스 로더(loader)를 이용해서 클래스를 메서드 영역에 저장하고 사용합니다.정적(static) 멤버란 메서드 영역의 클래스에 고정적으로 위치하는 멤버를 말합니다. 그렇기 때문에 정적 멤버는 객체를 생성할 필요 없이 클래스를 통해서 바로 사용이 가능합니다.※ 클래스 로더에 대한 내용은 다음 링크에서 확인 가능  정적 멤버 선언객체마다 가지고 있을 필요성이 없는 공용적인 필드는 정적 필드로 선언하는 것이 좋습니다. 예를 들어 Calculator 클래스에서 원의 넓이나 둘레를 구할 때 필요한 파이는 Calculator 객체마다 가지고 있을 필요가 없기 때문에 정적 필드로 선언하는 것이 좋습니다.public class Calculator { String color; // 객체와 상관없이 .. 2024. 9. 24.
[Java] 인스턴스 멤버 필드와 메서드는 선언 방법에 따라 인스턴스 멤버와 정적 멤버로 분류할 수 있습니다. 인스턴스 멤버로 선언되면 객체 생성 후 사용할 수 있고, 정적 멤버로 선언되면 객체 생성 없이도 사용할 수 있습니다.구분설명인스턴스(instance) 멤버객체에 소속된 멤버(객체를 생성해야만 사용할 수 있는 멤버)정적(static) 멤버클래스에 고정된 멤버(객체 없이도 사용할 수 있는 멤버)  인스턴스 멤버 선언 및 사용인스턴스 멤버란 객체에 소속된 멤버를 말합니다. 따라서 객체가 있어야만 사용할 수 있는 멤버 입니다.gas 필드와 setSpeed() 메서드는 인스턴스 멤버이기 때문에 외부 클래스에서 사용하기 위해서는 Car 객체를 먼저 생성하고 참조 변수로 접근해서 사용해야 합니다.Car myCar = new Car().. 2024. 9. 24.
[Java] 오버로딩(Overloading) 생성자 오버로딩매개 값으로 객체의 필드를 다양하게 초기화 하려면 생성자 오버로딩(overloading)이 필요합니다. 생성자 오버로딩이란 매개변수를 달리하는 생성자를 여러 개 선언하는 것을 말합니다.public class Car { Car() {...} Car(String model) {...} Car(String model, String color) {...} Car(String model, String color, int maxSpeed) {...}} 매개변수의 타입과 개수 그리고 선언된 순서가 똑같을 경우 매개 변수 이름만 바꾸는 것은 생성자 오버로딩이 아닙니다.public class Car { Car(String model, String color) {...} Ca.. 2024. 9. 24.
[Java] 객체와 클래스 객체를 생성할 때에는 설계도가 필요합니다. 현실 세계에서 자동차를 생성하려면 자동차의 설계도가 필요하듯이, 객체 지향 프로그래밍에서도 객체를 생성하려면 설계도에 해당하는 클래스가 필요합니다. 클래스로부터 생성된 객체를 해당 클래스의 '인스턴스'라고 부릅니다.클래스로부터 객체를 만드는 과정을 '인스턴스화' 라고 합니다. 동일한 클래스로부터 여러 개의 인스턴스를 만들 수 있는데 이것은 동일한 설계도 여러 대의 자동차를 만드는 것과 동일합니다. 클래스 선언클래스 선언은 객체 생성을 위한 설계도를 작성하는 작업 입니다. 어떻게 객체를 생성(생성자)하고, 객체가 가져야 할 데이터(필드)가 무엇이고, 객체의 동작(메서드)은 무엇인지를 정의하는 내용이 포함됩니다.public class ClassTest { .... 2024. 9. 24.
[Java] 객체지향프로그래밍 객체지향프로그래밍 현실 세계에서 어떤 제품을 만들 때 부품을 먼저 만들고, 이 부품들을 하나씩 조립해서 완성품을 만듭니다.소프트웨어를 개발할 때에도 부품에 해당하는 객체들을 먼저 만들고, 이 객체들을 하나씩 조립해서 완성된 프로그램을 만드는 기법을 '객체 지향 프로그래밍(OOP)' 이라고 합니다. 객체란?객체란 물리적으로 존재하거나 개념적인 것 중에서 다른 것과 식별 가능한 것을 말합니다.ex) 자동차, 자전거, 책, 사람, 학과, 강의, 주문 등객체는 속성과 동작으로 구분하고 자바는 이러한 것을 각각 속성(필드), 동작(메서드) 라고 부릅니다.  객체의 상호작용현실 세계에서 일어나는 모든 현상은 객체와 객체 간의 상호 작용으로 이루어져 있습니다. 예를 들어 사람은 전자계산기의 기능을 이용하고, 전자 계.. 2024. 9. 20.