개발 공부/자바 기본기 28

원시값 포장이란 ?

# 원시값 포장이란?- 원시 타입의 변수를 객체로 포장한 것 !- > 사실 말로만들으면 어려운게 사실이다. > 처음 접한다 했을 때 명확하게 사용하느 이유를 알지 못했다.public class Member { private final String name; private final int age; public Member(final String name, final int age) { this.name = name; this.age = age; } public String getName() { return name; } public int getAge() { return age; }}이렇게 클래스가 있다고 가..

Java Mentoring 시작 3주차

https://github.com/moonwhistle/2024-java-mentoring-2 GitHub - moonwhistle/2024-java-mentoring-2: 2024년 2학기 자바 멘토링2024년 2학기 자바 멘토링. Contribute to moonwhistle/2024-java-mentoring-2 development by creating an account on GitHub.github.com  드디어 미션 1 끝내는 멘티분들이 생겼습니다. 처음이라 어려우셨을텐데 열심히 해주셔서 감사한것 같습니다! 다들 자바는 처음이고 객체지향을 처음 접해서 어려웠을것 같습니다.  멘토링을 하면서 작년에 고민했던 부분들이 다 똑같이 고민한다는것이 조금 인상 깊었고, 간만에 리뷰를 달아주면서 다시 ..

JSONObject Vs ObjectMapper

JSONObject와 ObjectMapper는 각각 장단점이 있기 때문에, 사용 목적에 따라 어떤 것이 더 좋은지 결정할 수 있습니다.JSONObject:간단한 JSON 파싱: 빠르게 키-값 쌍을 읽고 수정할 수 있으며, 비교적 작은 JSON 데이터를 처리하는 데 적합합니다.사용 용이성: 특정 키에 대해 바로 값을 가져오고 싶을 때 편리하며, 코드가 직관적입니다.유연성 부족: Java 객체로 직접 매핑하는 기능은 없고, 복잡한 JSON 구조를 처리하기에는 제한적입니다.ObjectMapper:객체 매핑 기능: JSON 데이터를 Java 객체로 바로 변환할 수 있어 복잡한 구조의 데이터를 처리하는 데 적합합니다.유연한 변환: JSON에서 객체로, 객체에서 JSON으로 변환할 수 있는 매우 강력한 기능을 제공..

자바 Stream 잘쓰고싶다!!

1. 스트림(Stream)은 자바 8부터 도입된 함수형 프로그래밍 스타일의 API로, 컬렉션 데이터를 처리하는 데 유용한 기능을 제공합니다. 스트림을 잘 활용하기 위해서는 몇 가지 주요 개념과 주의할 점들을 이해하는 것이 중요합니다.2. 데이터 소스: 스트림은 데이터 소스 컬렉션 배열 등에서 데이터를 가져와 처리한다. 3. 중간연산: 중간 연사은 스트림을 변환하거나 필터링하는 연산을 수행한다. 4. 종단 연산 스트림의 요소를 소모하여 최종 결과를 도출하는 연산1. filter : 조건에 맞는 요소를 걸러낸다. List numbers = Arrays.asList(1, 2, 3, 4, 5); List evenNumbers = numbers.stream() .filter(num -> num % 2 ==..

HTTPS 사용하여 SpringBoot 애플리케이션을 안전하게하자

HTTPS는 HTTP의 보안 버전으로, 데이터가 암호화되어 전송됩니다. 이를 위해 SSL/TLS 인증서를 사용합니다. Let's Encrypt와 같은 인증 기관에서 무료 인증서를 발급받거나, 자체 서명된 인증서를 사용할 수 있습니다. 이번 예제에서는 자체 서명된 인증서를 생성하고 이를 Spring Boot 애플리케이션에 적용하는 방법을 설명하겠습니다.1. 자체 성명된 SSL 인증서 생성1 -1 키스토어 생성 : keytool 명령어를 사용하여 SSL인증서를 생성하고 키스토어 파일로 저장한다. (keytool은 Java Development Kit(JDK)에 포함된 도구)keytool -genkeypair -alias myalias -keyalg RSA -keysize 2048 -storetype PK..

Custom Exception

표준 예외를 적극적으로 사용하자.예외 메시지로도 충빈히 의미를 전달할 수 있다.IllegalArgumentException을 사용하지만 메시지만 예외사항에 맞게 재정의 해준다면? 충분히 읨리ㅡㄹ파악할 수 있음 그러므로 괜찮다.가독성이 높아진다. 인수로 부적절한 값이들어올때 던지는 예외인 IllegalArgumentException일을 수행하기에 적합하지 않은 상태의 객체인 경우 던지는 예외: IllegalStateException요청 받은 작업을 지원하지 앟는 경우에 던지는 UnsupportedOperatonException 사용자 정의 예외클래스는 컴파일러가 체크하는 일반 예외로 선언할수 도있고 컴파일러가 체크하지않는 실행예외로 선언할 수 있다.사용자 정의 예외클래스 일흠은 Exception으로 끝나는..

자료구조 정리 Java

자료구조 정리 JAVACollection 프레임워크Collection 프레임워크에서 지원하는 자료구조들과 Map은 전부 힙 영역에 저장된다.List, Set Map의 각 Node에는 객체를 가리키는 주소가 저장되어있다.중복 허용되는 List map은 하나의 객체를 가르키는 주소값을 서로 공유하는 형태로 구성된다.List (중복허용, 인덱스 넘버를 통해 참조하고 관리)ArrayList 중간 인덱스 요소를 삭제하면 뒤의 인덱스를 가진 요소들 한 칸씩 앞으로 당겨짐Vector : ArrayList 처럼 작동 #멀티쓰레드를 통해 동시에 호출 불가능LinkedList 연결리스트의 개념 링크 체인형태, Link 가 삭제되면 Link -1 Link +1 링크들과 연결을끊고Link-1 Link+1끼리 링크를 연결한다..

HTTPS

HTTPS는 HTTP 프로토콜을 기반으로 하는 보안 소켓 통신 프로토콜이다.- 자바에서 HTTPS 소켓 통신을 위해 HttpsURLCOnnection 클래스를 사용할 수 있다.- HTTP + Secure HTTP 프로토콜의 보안 버전- 보안에 취약해서 나온 버전이다.- 인터넷 상에서 정보를 전달하려면 HTTP를 사용해야한다.- HTTP를 통해 클라이언트가 서버에게 데이터를 패킷에 감싸 보내면- 라우터를 타고타고 여기저기 들르면서 목적지를 찾아간다.- 이 과정에서 데이터가 탈취될 수 있다.- 데이터가 만약 중요하다면 중대한 사항이게 된다.- 사용자 입장에서 화면만 보고는 진짜인지 가짜인지 모른다는 것- 그래서 전달되는 데이터가 중간에 탈취당해도 해커가 내부 내용을 알수 없게 만들었다.- 서버에게 받은 응..

자바에서 Static 사용을 지양하는 이유?

자바에서 Static 사용을 지양하는 이유는 ?자바는 객체지향을 위한 언어이다.Java에서는 static이라는 키워드가 존재한다.클래스의 모든 인스턴스에서 공유되는 단 하나의 static member의 인스턴스가 생성되도록 명령하는 키워드이다.자바 메모리는 크게 Stack, heap, static 메모리로 구분한다.static영역은 프로글매 종료시 까지 남아있는다.static은 전역변수와 멤버 변수를 저장하게 된다.객체지향입장에서는 데이터를 외부에서 접근하여 수정하는것을 방지해야하는데, 객체지향에서 캡슐화 해야하는 것을 막음 프로그램이 로딩될때 JVM이 내려갈때 소멸된다. 개발자가 생성과 소멸에 관여할 수 없다.메모리 측면에서 프로그램이 종료 될때 까지 남아 있음그래서 실행되는 동안 계속 살아 있다는 것..