본문 바로가기

프로그래밍 언어5

[Java] 직렬화(Serialization)란? 객체를 저장하거나 메모리, 데이터베이스 혹은 파일로 옮기려면 어떻게 해야할까?  이럴 때 필요한 것이 직렬화(Serialization)다.  자바의 직렬화는 객체를 바이트 스트림으로 변환하여 저장하거나 네트워크를 통해 전송할 수 있게 해주는 과정이다. 쉽게 말해, 자바 객체를 파일에 저장하거나 다른 컴퓨터로 보낼 수 있도록 ‘일렬로 세우는’ 과정이다. 이를 통해 객체의 상태를 저장하거나 공유할 수 있다. 왜 직렬화가 필요한가?직렬화의 주된 목적은 객체를 상태 그대로 저장하고 필요할 때 다시 생성하여 사용하는 것이다.   역직렬화(Deserialization)는 직렬화의 반대말로, 네트워크나 영구저장소에서 바이트 스트림을 가져와서 객체가 저장되었던 바로 그 상태로 변환하는 것이다. 직렬화하면서 생긴 바이트.. 2024. 7. 12.
[HTML,CSS] HTML파일 열때 CSS, JS 적용안될 현상Visual Studio(VS) 이용하여 라이브서버(Live Server)로 html 파일을 열면 css와 js등 style이 잘 적용되어 미처 몰랐는데탐색기나 finder에서 직접 html 파일을 여니스타일이 적용이 안됨  이유 슬래시(/)로 시작하는 절대주소는 서버환경 곧, 라이브서버에서만 보이는 시스템이다.만약 탐색기에서 html 파일을 열어서 보이게 하려면 모든 경로를 상대주소로 바꾸어야 한다.ex) /images/aaa.png ==> images/aaa.pngex) /css/style.css ==> css/style.css 2024. 7. 1.
[Spring] @Builder 빌더 어노테이션, 빌더 패턴 @Builder란? Lombok 라이브러리에서 제공하는 어노테이션으로, 자바에서 빌더 패턴을 손쉽게 구현할 수 있도록 도와준다. @Builder 어노테이션을 사용하면 복잡한 객체를 생성할 때 필요한 코드를 줄이고, 가독성 및 유지보수성을 향상시킬 수 있다. @Builder 어노테이션 사용 방법을 알아보기 앞서 빌더 패턴에 대해 알아보자. 빌더 패턴 빌더 패턴은 복잡한 객체를 단계별로 구축할 수 있게 해주는 디자인 패턴이다. 이해를 돕기 위해, 일상 생활에서 익숙한 "피자 주문" 과정을 예로 들어보자. 피자 주문하기 피자를 주문할 때, 우리는 다양한 토핑을 선택할 수 있다. 예를 들어, 치즈 피자에 페퍼로니, 올리브, 버섯 등을 추가할 수 있다. 하지만 모든 사람이 같은 토핑을 원하는 것은 아니다. 어.. 2024. 2. 28.
[Spring] 좋은 객체 지향 설계의 5가지 원칙(SOLID) S O L I D 스프링 공부를 하다 객체 지향 설계를 학습하기 앞서 알아 두면 좋다고 하여 기록한다. 악덕 면접관에게 걸리면 면접에도 나올 수 있다고 하니 알아두자. SOLID란 클린코드로 유명한 러버트 마틴이 좋은 객체 지향 설계의 5가지 원칙을 정리한 것이다. S : SRP(Single Responsibility Principle) 단일 책임 원칙 O :OCP(Open/Closed Principle) 개방-폐쇄원칙 L : LSP(LIskov Substitutiom Principle) 리스코프 치환 원칙 I : ISP(Interface Segregation Principle) 인터페이스 분리 원칙 D : DIP(Dependency Inversion Principle) 의존관계 역전 원칙 SRP 단일 .. 2024. 2. 27.