PROGRAMMING/JAVA
-
그러니까 ... bean이 ... jsp 빈이 ... spring 빈이 ... dto가 ... 뭐?PROGRAMMING/JAVA 2023. 1. 10. 08:51
확실히 말하지 나는 바보라 저런 거 모른다. 하지만 알아야 하기에 어쩔 수 없이 알게 되었다 dto는 Data Transfer Object의 약자다 보통은 데이터베이스의 레코드를 넣는다고는 하지만 클래스처럼 값을 넣는 용도로 사용한다 계층간 이동할 때 값을 담고 다닌다 jsp의 useBean의 bean과 spring의 bean은 같다고 한다 아래의 빈을 말하는 거다 같은데 다르다고 한다 뭘까 빈이란 내 생각에 jsp 빈은 getter setter 용도로만 사용된다 그에 반해 spring 빈은 생성 관리 소멸 까지 담당 당하는 핵심 개념이다 그럼 dto가 뭐지 ... 기억 안 남 vo class dto jspBean springBean 무슨 차이지
-
그래서 Servlet은 html페이지를 반환하는 건가?PROGRAMMING/JAVA 2023. 1. 5. 08:55
하루입니다. 반환합니다! 이런 코드가 있다고 합시다. 실행하면 id 중복시 html 페이지에 out.println("") 내부의 String이 html 요소가 되어 html 페이지가 뜹니다. 궁금증 : 그러면 서블릿의 역할은 String으로 된 "html 문장"을 반환하는 것인가? 아니면 html 페이지까지 생성하는 것인가? 답변 : 이름 없는 html 페이지를 생성해서 반환한다. 동적으로 값이 바뀌기에, 이름이 있는 게 아닌 이름 없는 html 페이지를 반환한다. ... 무명 클래스 무명 함수도 모자라 무명 html 페이지요?
-
Optional<T>란?PROGRAMMING/JAVA 2023. 1. 1. 00:00
요즘은 getById(Long id) 처럼 값이 null이 나올 수 있는 경우를 Optional로 처리하는 것을 선호한다고 한다. 예를 들어 예전엔 if(a == null) { ... } 이렇게 사용했다. 지금은 저렇게 값을 직접 꺼내는 걸 선호하지 않는다. Optional을 사용하면 ifPresent를 사용해서 result.ifPresent(m1 -> { 이미 존재하는 회원 예외 던지기} ); 이런 식으로 사용 가능하다. 그리고 ifElseGet()도 많이 사용한다고 한다. 값이 있으면 꺼내고, 없으면 지정한 걸 실행해! 이런 거. 그래서 자바 oracle doc에서 찾음! https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/O..
-
extends와 implements의 차이 : 인터페이스가 인터페이스를 extends하는 이유PROGRAMMING/JAVA 2022. 12. 29. 20:00
하루입니다. ... 뭔가 이상하지 않나요? Wrapper와 AutoCloseable은 interface입니다. 그런데 왜!!!!!!!!!!!!!!!!!!! implements가 아니라 extends일까요!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 그 차이는 interface의 특성과 extends/implements의 차이에 있습니다. 1. interface 인터페이스는 선언만 하고 구현하지 않습니다. 구현은 구현클래스의 몫입니다. 2. implements 클래스가 인터페이스를 구현하는 경우, 인터페이스의 메소드를 반드시 override 해야합니다. override는 부모클래스(여기서는 인터페이스)의 메소드(함수)를 자식클래스(여기서는 구현클래스)가 재정의(구현)하는것을 말합니다. 3. exte..
-
[ JAVA ] 내가 생각하는 직렬화. 왜 직렬화를 사용하는 걸까?PROGRAMMING/JAVA 2022. 12. 22. 02:10
하루입니다. 자바의 입출력을 다루다가 '직렬화' 를 배웠다. 정확히는 객체를 출력하기 위해서는 ObjectOutputStream을 사용하고, 이를 위해서는 객체를 직렬화해야 한다고 한다. 직렬화가 뭔데? 정말 간단히 말하자면 객체를 바이트로 변환하는 것이다. 왜? 자바에서 객체 내부 내용을 파일에 저장하거나 네트워크를 통해 전송하기 위해서는 일일히 바이트로 분해하는 작업이 필요하기 때문이다. (직렬화객체 Stream들이 그 역할을 대신 해 주는 거고) 왜? 왜 객체 내부 내용을 바로 보내면 안 되는데? 이에 대한 답을 오키의 누군가가 적어주셨다. - 데이터의 메모리 구조는 크게 값과 오브젝트 두 가지로 나뉜다. - 값은 integer 이런 거. Stack 영역에 직접 값을 가지고 있다. - object(..
-
내가 생각하는 추상클래스와 인터페이스의 차이PROGRAMMING/JAVA 2022. 12. 12. 03:22
1. 객체지향 프로그래밍 객체란 존재하는 모든 것. 핸드폰이라고 한다면 액정, 스피커, 케이스, 색상 등의 상태가 있고, 켠다(); 끈다(); 캡쳐한다(); 등의 행동을 가진다. 객체지향 프로그래밍이란 이 객체들의 관계를 통해 프로그래밍(설계) 하는 것이다. 여러 포스팅을 찾아보면서 실생활과 밀접한 프로그래밍이라고 느꼈다. 2. 추상화 2-1. 기능 추상화 사용자에게 내부 로직을 숨기는 것이다. 예를 들어, 핸드폰에서 어플을 사용한다면 우리는 어플이 어떻게 작동하는지에 대해 관심이 없다. 알람 기능을 누르면 알람이 생성되지만 어떤 로직으로 이루어지는지는 알 수 없다. 프로그래밍 역시 마찬가지이다. Map, List 등을 사용할 때 뒤의 로직이 어떻게 돌아가는지는 알지 않는다. 기능을 사용할 뿐이다. 이처..