choiDev

고정 헤더 영역

글 제목

메뉴 레이어

choiDev

메뉴 리스트

  • 홈
  • 방명록
  • 자바
  • 자바로 푼 알고리즘
  • 안드로이드
  • 네트워크
  • 컴퓨터 구조
  • 책 리뷰
  • 재테크
  • 취미 회계
  • 개발자의 여행 방식
  • 글 쓰기
  • 분류 전체보기 (170)
    • 스타트업 회고 (0)
    • Network (20)
    • Programming language (29)
      • C 언어 (0)
      • 자바 (12)
      • Kotlin (17)
    • Algorithm (36)
    • Data Structure (10)
    • Android (36)
      • 안드로이드 (Realm) (0)
      • RxJava (0)
    • Backend (18)
    • React (2)
    • IT에 대해 (9)
    • 앱 or 서비스 리뷰 (0)
    • Slack (1)
    • GIT (1)
    • Database (1)
      • MySql (1)

검색 레이어

choiDev

검색 영역

컨텐츠 검색

전체 글

  • [Flyway] 설정하기

    2023.04.10 by choiDev

  • [Java- Enum] (Enum or 상수) NullPointerException 방지하기

    2022.08.14 by choiDev

  • [Java8] Stream이란

    2022.06.22 by choiDev

  • [HTTP] X-Forwarded-For(XFF)란?

    2022.06.12 by choiDev

  • 스프링 빈 (Spring Bean) & 자바 빈 (Java Bean)

    2022.05.29 by choiDev

  • ORM [Object Relational Mapping] 이란?

    2022.01.22 by choiDev

  • [Kotlin] Object & Companion Object

    2021.09.21 by choiDev

  • [Kotlin] Data Class (데이터 클래스)

    2021.09.21 by choiDev

[Flyway] 설정하기

Flyway란? Flyway란 데이터 베이스 마이그레이션 도구이며 DB의 스키마버전을 관리하고 업그레이드 할수있습니다. 또한 Flyway는 apache license 2.0 라이선스를 채용한 오픈소스로 무료로 사용 가능합니다. Flyway의 지원 DB범위 Mysql, PostgreSQL, Oracle, SQL Server, NoSQL 데이터베이스인 MongoDB, Amazon Redshift 도 지원한다. Flyway 설정 방법 1. build.gradle 파일에 아래 구문들을 추가합니다. //flyway 라이브러리 추가 implementation 'org.flywaydb:flyway-core' implementation 'org.flywaydb:flyway-mysql' //flyway 플러그인 추가 p..

Backend 2023. 4. 10. 23:22

[Java- Enum] (Enum or 상수) NullPointerException 방지하기

현업에서 Enum을 사용하다가 NullPointerException에 취약하게 Enum을 사용했던 과거의 저와 몇몇 신입 동료들을 기억하며 기록하려고 글을 작성해 봅니다. [Enum or 상수와 객체(값)을 비교할때 Null을 조심하자] //"Enum일때 문제가 되는 코드" public enum DeviceType { Android, IOS } public static boolean isAndroid(DeviceType userDeviceType){ return userDeviceType.equals(DeviceType.Android) } //"상수일때 문제가 되는 코드" public static String DEVICE_TYPE_ANDROID = "Android"; public static String..

Programming language/자바 2022. 8. 14. 18:17

[Java8] Stream이란

Stream이란? (컬렉션, 배열)데이터를 다양한 연산을 통해 가공 후 새로운 데이터를 만드는 역할을 합니다. Stream이 제공해주는 filter, reduce, map등의 이미 정규화된 연산을 사용하며, for(i)와 같은 증감식 변수를 직접 제어하지않아 변수로 인해 발생하는 에러를 방지합니다. Stream이 제공해주는 filter, reduce, map, collect 같은 여러 연산을 연결해 복잡한 데이터 처리 파이프라인을 만들며 여러 연산이 파이프라인으로 연결되어도 가독성이 좋습니다. Stream은 데이터 연산이 끝나면 Stream이 닫히며 재사용이 불가능합니다. Stream은 명령형이 아닌 선언형으로 코드를 구현할수 있으며 이는 가독성증진, 코드블럭 재조립 용이한 이점이 있습니다. Stream..

Backend 2022. 6. 22. 23:52

[HTTP] X-Forwarded-For(XFF)란?

XFF는 HTTP header 중 하나로 Server에 요청한 Client의 IP를 식별하기 위한 표준입니다. 클라이언트와 서버 중간에서 트래픽이 (Proxy Server, Cashing Server, LB(Load Balancer)) 등을 거치면 서버 접근 로그에는 (Proxy Server, Cashing Server, LB(Load Balancer))의 IP 주소만을 담고 있다. 이로인해 클로이언트의 원 IP 주소를 보기위해 X-Forwarded-For 요청 헤더가 사용된다. 이 헤더는 디버깅, 통계, 위치 종속적인 컨텐츠를 위해 사용되고,. 클라이언트의 IP 주소 등과 같은 민감한 개인정보를 노출한다. 그러므로 이 헤더를 사용할때는 사용자의 프라이버시를 주의해야합니다. X-Forwarded-for ..

Network 2022. 6. 12. 17:02

스프링 빈 (Spring Bean) & 자바 빈 (Java Bean)

Spring Bean이란? IoC 컨테이너에 의해 생명주기와 의존성 주입이 관리되는 객체이다. 특징 Spring Bean은 IoC 컨테이너에서 관리되기 때문에, IoC 컨테이너에 등록해야 사용할수있음 등록방식 1. Compnent Scan을 통한 등록(Annotation) 1.1 @Component 어노테이션이 붙어있는 클래스, 인터페이스등은 자동으로 IoC 컨테이너에 등록된다. 1.2 @Controller, @Service, @Entity등도 클래스 파일을 열어보면 내부적으로 @Component 어노테이션을 사용한다. 2. 빈 설정파일에 직접 등록 Java Bean이란? 자바로 작성된 객체이며, 데이터 표현을 목적으로 한다. Java Bean 생성관례 [디폴트 생성자] 자바빈은 파라미터가 없는 디폴트 ..

Backend 2022. 5. 29. 19:34

ORM [Object Relational Mapping] 이란?

ORM[Object Relational Mapping]이란? OOP(Object Oriented Programming)객체 지향 프로그래밍에서 말하는 객체와 RDB(Ralational DataBase)에서 쓰이는 테이블을 연결하는 것을 의미한다. 객체와 테이블의 정의 방법이 완벽하게 일치하지 않으므로 ORM을 통해 객체를 만들고 그걸 TABLE로 사용하기로 하면 SQL문 자동 생성하여 복잡한 쿼리를 짜는 시간을 줄이며 OOP관점으로 바로 DB 질의가 가능하여 생산성을 높이고 있다. ORM의 나온 배경 JAVA는 객체 지향 관점으로 만들어지고, RDB는 관계형 DB 관점으로 만들어졌기에 서로 호환성을 두고 만든 기술이 아니다. 객체-관계간의 불일치는 아래와 같이 정리를 할 수 있다. 세분성(Granular..

IT에 대해 2022. 1. 22. 19:12

[Kotlin] Object & Companion Object

Object 키워드란? Kotlin에서 class와 object 키워드의 용도는 비슷하지만 전혀 다른 역할로 사용되고 있습니다. class는 클래스를 정의하는 경우 사용하며, object는 싱글턴 패턴이 적용되어 객체가 한개만 생성됩니다. object 키워드 단 하나로 싱글턴 생성이 가능하며 보일러플레이트(boilerplate)를 작성하지 않아도 되어 많은 문법 오류와, 수정 범위를 줄여줍니다. 그리고 object 키워드는 익명 객체를 구현할때도 사용됩니다. Object 특징 - object 객체는 주생성자, 부생성자 모두 사용 불가 - object는 상속 시 부모가 될순 없지만 자녀로서 상속을 받을 수 있습니다. - Java에서 Kotlin의 object를 사용할때는 {클래스}.INSTANCE.{함수 ..

Programming language/Kotlin 2021. 9. 21. 16:02

[Kotlin] Data Class (데이터 클래스)

Data Class란 ? - 데이터를 담는 목적으로 만든 클래스 Data Class의 특징 - toString(), hashCode(), equals(), copy() 메소드를 자동으로 만들기에 보일러 플레이트가 줄어듭니다. - 보일러 플레이트가 줄어들면 똑같은 코드를 작성하다가 발생할 실수를 방지하거나, 수정할 코드 범위가 줄어들어서 유용합니다. - toString()은 데이터 클래스의 변수와 그 값을 문자열로 반환합니다. - equal()은 현재 객체와 비교할 객체와 동일한 클래스와 동일한 값을 가졌는지 비교합니다. - copy()는 현재 객체와 똑같은 값을 같은 새로운 객체를 생성해 반환합니다. - hashcode()는 현재 객체의 주소값을 변환하여 고유의 정수값을 반환합니다. 주로 객체 비교에 사..

Programming language/Kotlin 2021. 9. 21. 14:03

추가 정보

인기글

최신글

페이징

이전
1 2 3 4 5 6 7 8 ··· 22
다음
TISTORY
choiDev © Magazine Lab
페이스북 트위터 인스타그램 유투브 메일

티스토리툴바