java 7

NonNull 사랑...사...사...랑... 그냥 좋아합니다.

@NonNull은 사용자에게 null 체크 잘하십쇼 하고 알려줄 수 있는 어노테이션입니다 보통 사용할 수 있는 용도는 아래와 같습니다 Record component / 함수의 파라미터 / 생성자의 파라미터 요렇게 쓸 수 있습니다 public void doSomething(@NonNull String input) { // input은 null일 수 없음 // 여기서 안전하게 input을 사용할 수 있음!! } @NonNull을 안 쓰면 아래와 같이 했겠쥬? 사실 씨쟁이는 아래의 코드가 더 익숙하지만 😒 파라미터만 보면 if 문 만들어야 직성이 풀리는 편. public void doSomething(String input) { // input은 null이면 아니된다.. if( input == null ) {..

📖 Java&Spring 2023.11.07

🌸 startsWith()/endWith() 문자열의 시작과 끝

startsWith()와 endWith()는 함수명으로 유추해볼 수 있듯이, 문자열에 대해 특정 문자로 시작하는지/끝나는지를 확인할 수 있는 함수 입니다. 아래는 간단한 예시 입니다. String str = "@@myId"; System.out.println(str.startsWith("@")); // true System.out.println(str.endWith("@")); // false 이런 식으로 특정 문자열에 대한 확인을 할 수 있습니다. 회원가입 하려는 사용자가 유효하지 않은 문자열을 사용하지는 않는지, 시작/끝 문자열에 있으면 안되는 문자열이 있는지 등등 확인할 때 활용될 수 있겠네욤 startsWith() Syntax public boolean startsWith(String chars)..

📖 Java&Spring 2023.04.04

@JsonProperty와 @JsonNaming

클라이언트와 연동 규격을 정의하며, JSON 형식을 변경하게 되었습니다. 원래 사용하던 연동 방식은 카멜 케이스 (Camel Case) 방식이었는데, 연동에 있어 최대한 빠르게 서비스를 하기 위해서 다 소문자로 변경해달라는 요구사항이 있어서 @JsonProperty를 사용해서 변경했습니다. 기존에는 REST API 메시지를 받을 때 @RequestBody를 사용해서 처리하고 있었어서 변수 이름을 바꾸는건 비효율적이었다 💦 🕒 JSON 명명 규칙 3가지 표준은 아니지만 아래의 3가지 스타일로 많이 사용한다. Pascal camelCase snake_case 만약 내 이름을 표현하기 위한 네이밍을 하고 있다면 // Pascal MyName // camelCase myName // snake_case my_n..

📖 Java&Spring 2023.03.17

Java의 Hash 알고리즘 MessageDigest

요즘 핫한 보안 문제 ❗ 이번에 신규 개발하는 기능에도 보안을 위해 사용자의 정보가 담긴 내용은 암호화를 하기로 했답니다. Java에서 Hash 값 생성을 할 때 많이 쓰는 클래스는 MessageDigest인데, 오늘은 이 친구를 정리해보겠습니다. 🔐MessageDigest https://docs.oracle.com/javase/7/docs/api/java/security/MessageDigest.html MessageDigest (Java Platform SE 7 ) This MessageDigest class provides applications the functionality of a message digest algorithm, such as SHA-1 or SHA-256. Message dig..

📖 Java&Spring 2023.03.16

StringUtils

StringUtils 📕API 문서 StringUtils는 문자열을 검사할 때나 변환할 때 유용하게 쓰이는 클래스 입니다 1) Class java.lang.Object org.apache.commons.lang3.StringUtils2) 특징 NullPointException 발생 X ThreadSafe 🌱 String Handling String 처리 클래스 답게 처리할 수 있는 단어들이 있는데용, 아래와 같습니다. null: 말 그대로 null empty: 빈 문자 ("') space: 스페이스 ('', char 형) whitespace: 여백, Character.isWhitespace(char를 참고) trim 🌱 Operations 이 때 아니면 언제 다 읽어보겠습니까? 😥 💡기본적으로 null-..

📖 Java&Spring 2023.01.18

Looking For Annotation~

Annotation Annotation 자체는 주석이라는 뜻입니다. C++/C 다루다가 Java 코드를 봤을 때 가장 재밌게 본 문법이었습니다. 작성자 이름이나 배포 날짜만 적는줄 알았던 주석이...! 다르게 보였기 때문인데요, 특징을 간단히 정리해보겠습니다 💫 Annotation 특징 AOP(Aspect Oriented Programming)을 편리하게 구성해주는 주석 기능 컴파일러에게 코드의 문법 에러를 체크할 때 쓰는 정보를 제공 개발 환경 빌드/배포 시 코드를 자동 생성하도록 정보 제공 런타임에 어떤 기능을 실행하도록 정보를 제공 Annotation 정리 (계속 업데이트 예정) 1) @Override 메소드를 Override 할 것이니 컴파일러에게 알려줍니다 상속 받은 부모 클래쓰/인터페이스가 없..

📖 Java&Spring 2023.01.16

Spring Framework를 알아보자

어쩌다보니 Spring 개발도 하게 된 나 오히려 좋아 (?) Notion에 정리해뒀던거를 가져왔더니 형식이 많이 깨지넴 참고로 Spring Framework의 스프링은 개발자가 편하게 유용하게 개발하길 바라며 봄날이 오길 바란다는 뜻이라고 한다 ㅋ Spring Framework 정의 자바 기반의 웹 어플리케이션 개발을 위한 프레임워크 특징 객체 지향 개발 Application 개발에 용이하도록 (빠르고 효율적) 기본 틀과 프로그래밍 모델, API 등을 제공함 동적인 웹 사이트를 개발하기 위한 여러 가지 서비스를 제공 🤮 라이브러리 vs 프레임워크 라이브러리: 개발자가 필요한 기능이 있을 때 직접 가져와 사용하는 기능을 미리 구현해둔 것. String은 java.lang.String에 미리 만들어진 기능..

📖 Java&Spring 2022.04.22