본문 바로가기

Java5

(Java) 패키지 양방향 의존 문제점과 해결 방안 목차 1. 패키지 양방향 의존성 문제점 2. 해결 방안 " data-ke-type="html">HTML 삽입미리보기할 수 없는 소스 1. 패키지 양방향 의존성 문제점 우리는 팀 단위로 프로젝트 진행할 때 보통 메뉴 or 도메인 단위로 패키지를 구성한 뒤 담당자가 배정된다. (모놀리식 프로젝트인 경우)그때 작업자들은 필연적으로 다른 개발자가 개발 중인 패키지의 서비스 등을 사용할 경우가 생긴다.그러면 해당 개발자는 일단 해당 서비스를 의존 주입 받아서 바로 사용하고 싶은 욕구가 생길 텐데 이때 아래와 같은 문제가 생길 수 있다. 현재 주문 패키지와 결제 패키지.. 2024. 5. 11.
Session과 JSESSIONID HTML 삽입 미리보기할 수 없는 소스 1. Session이란 HTTP 프로토콜을 사용하는 Spring WAS와의 통신은 기본적으로 무상태(StateLess) 즉 1회성이란 말이다. 그렇기 때문에 로그인 같이 상태를 유지해야 하는 상황에서는 상태를 유지할 수 있는 방안이 필요하다. 그것을 위한 방안이 Session이란 것이다. Java에서는 ServletContainer가 생성의 주체이다. 1-1 Session과 로그인 처리 그렇다면 Session을 통해 로그인을 처리하는 방법은 무엇일까? 사용자가 로그인 화면을 통해 아이디와 비밀번호를 입력한다. 서버단에서 입력받은 아이디와 비밀번호를 통해 회원 DB를 조회한다. 조회가 된 회원 데이터를 통해 Session을 생성한다. 클라이언트가 사용할 수 있도록 쿠.. 2023. 11. 20.
객체지향 캡슐화 이해하기 HTML 삽입 미리보기할 수 없는 소스 1. 캡슐화의 정의 한마디로 객체의 내부 정보(필드)를 은닉하고 데이터와 메서드를 하나의 단위로 묶는 것이다. 단순히 class가 가지고 있는 필드의 접근 제어자를 private 한다고 캡슐화를 한것이 아니다. 캡슐화는 객체간의 결합도를 낮추는 가장 기본적인 개념으로 꼭 이해해야 할 개념이다. 아래 예시를 통해 캡슐화가 무엇인지 이해해보자. 2. 예시를 통해 캡슐화 이해하기 아래와 같이 Bank 클래스와 Customer, Company 클래스가 있다. Bank 클래스 public class Bank { private int balance; // 잔액 private double interestRate; // 이자율 public Bank(int balance, doub.. 2023. 9. 15.
[Java] 입출력(I/O) 정리 HTML 삽입 미리보기할 수 없는 소스 1. 입/출력이란 입출력은 컴퓨터 프로그램과 내부/외부 환경 간의 데이터 전송을 의미하는데 예를 들어 마우스와 키보드를 통해 어떤 명령을 입력하면 화면으로 출력이 되고 한 서버에서 요청을 하면 데이터를 전송(출력) 해주기도 한다. Java에서는 입출력(I/O)이라는 것을 보통 처음 접하게 되는 것이 파일에 처리를 할 때이다. 그때 사용하는 것이 InputStream과 OutputStream인데 그것을 이해하고 사용하기 위해서는 Stream이 무엇인지 알아야 하는데 Stream과 파일 처리에 대한 것은 뒷부분에서 자세히 다룬다. 2. Stream이란 스트림이란 데이터가 이동하는 통로라고 이해하면 쉽다. 우리가 통신을 할 때 모든 것은 스트림을 통해 이동을 하게 되는데.. 2023. 8. 24.