분류 전체보기 78

[SpringBoot] 원시타입, 참조타입/Boolean boolean의 차이점 및 이슈

Boolean 참조 타입 : reference type true, false, null 값을 가진다. 주로 Null 체크를 필요로할 때 참조형을 사용한다. boolean 원시 타입 : primitive type true, false 값을 가진다. Null 체크가 불필요할 때 자료형(원시 타입)을 사용한다. 참조 타입과 원시 타입의 차이 자료형(원시 타입) : int, float, double, boolean, ... 참조형 : Integer, Float, Double, Boolean, ... 자료형을 객체로 감싼 것이 참조형이다. → Unboxing 원시 타입은 null 입력 가능, 제네릭 타입에서 사용 불가. 참조형은 null 입력 불가, 제네릭 타입에서 사용 가능. 원시 타입은 데이터를 stack메모..

[MyBatis/Error] org.apache.ibatis.ognl.ExpressionSyntaxException: Malformed OGNL expression

MyBatis SQL 작성하다가 위와 같은 에러가 발생했습니다. Caused by: org.apache.ibatis.ognl.ParseException: Encountered " "AND "" at line 1, column 35. Was expecting one of: "," ... "=" ... "?" ... "||" ... "or" ... "&&" ... "and" ... "|" ... "bor" ... "^" ... "xor" ... "&" ... "band" ... "==" ... "eq" ... "!=" ... "neq" ... "" ... "gt" ... "=" ... "gte" ... "in" ... "not" ... "" ... "shr" ... ">>>" ... "ushr" ... "+..

Error 2022.12.27

[MyBatis] resultType 정리(feat. List<DTO>로 리턴받기)

1. MyBatis-Mapper resultType 정리 alias(별칭) Data Type(데이터 타입) string String date Date map Map hashmap HashMap list List arraylist ArrayList decimal BigDecimal bigdecimal BigDecimal biginteger BigInteger _byte byte _long long _short short _int int _integer int _double double _float float _boolean boolean _byte[] byte[] _long[] long[] _short[] short[] _int[] int[] _integer[] int[] _double[] double[]..

[Java] Array / List / ArrayList 차이점

시니어 분들과 작업하다보니 하나하나 더 신경쓰게 되고 더 검색하게 되고 더 공부가 되네요.(but, 속도↓ 시간투자↑) DB에서 데이터를 조회할 때, 동적으로 배열/리스트에 데이터를 받아야 할 때가 있습니다. Java에서 사용할 수 있는 자료구조는 Array / List / ArrayList가 있습니다. 그러면 '언제 뭘 써야하고 이유는 무엇일까?'라는 생각이 들어 공부 겸 정리를 해보려고 합니다. 1. Array(배열) 장점 index는 값에 대한 유일무이한 식별자 → 인덱스를 통한 검색이 용이함. 연속된 메모리의 공간으로 이루어져 있다. → 연속적이므로 메모리 관리가 효율적이다. 단점 정적이므로 배열의 크기를 컴파일 이전에 정해주어야 한다. → 컴파일 이후 배열의 크기를 변동 할 수 없다. 이로 인해..

Java 2022.12.13

[객체지향 생활체조 원칙] 2. else 키워드를 사용하지 마라.(2/9)

......?? 대체 왜?? 이유가 뭐지??? 대부분의 프로그래밍 언어는 if / else 구문을 지원하는데.....?? (else 쓰지말라고 해서 swich / case 사용할 생각하는 사람은 없죠...?? = 나) 이유를 검색해보자....!! 숨은 의미 이 원칙의 제시 의도는 한 메소드에서 발생하는 분기문을 줄이자는 것이다. 분기문을 많이 가지고 있는 메소드는 많은 기능을 가지고 있을 확률이 높다. 메소드를 분리하거나, 객체지향적인 구조를 적요해 분기문을 줄일 수 있다. 이는 결국 설계관점에서의 개선을 의미한다. else 키워드는 '조건을 만족하지 않을 때'를 전체하고 시작한다. 가독성이 떨어질 수 밖에 없다. if 조건을 만족하지 않는 모든 경우를 의미하기 때문에, 코드를 읽을 때 양 쪽을 함께 생..

Transpile(트랜트파일)과 Complie(컴파일)

트랜스 파일과 컴파일이라는 두 용어를 헷갈려서 정리해보려고 합니다. 트랜스 파일과 컴파일을 같은 개념으로 사용하기도 하는데, 약간의 차이가 있습니다. complie : 한 언어로 작성된 소스 코드를 다른 언어로 변환하는 것. ex) Java → bytecode C언어 → 기계어 Transpile : 한 언어로 작성된 소스 코드를 비슷한 수준의 추상화(Abstraction)를 가진 다른 언어로 변환하는 것. ex) C++ → C언어 coffescript → javascript 두 용어의 의미의 차이를 이해하기 위해 좀 더 쉬운 예를 하나 들어보자면 C#으로 작성된 소스 코드를 컴파일하면 소스 코드와 기계어 사이의 중간 단계 언어(IL-Intermediate Language)로 변하는데, 이 때 두 언어는 ..

[객체지향 생활체조 원칙] 1. 한 메서드에 오직 한 단계의 들여쓰기만 한다.(1/9)

"잘 알아서 책을 쓰는 게 아니라 책을 쓰면서 알아간다" 라는 말처럼 객체지향언어의 프로그래밍 훈련에 대해 포스팅하며 배우고자 합니다. (구글링하다가 우연히 호돌님 블로그에서 감명깊게 읽고 가져왔습니다.) Object Calisthenics(객체지향 생활체조)는 Jeff Bay가 그의 저서 The ThoughtWorks Anthology에서 발명한 9가지 규칙의 집합으로 공식화 된 프로그래밍 훈련이다. Object라는 단어는 Object Oriented Programming (객체지향 프로그래밍)의 Object를 의미하며, Calisthenics라는 단어는 체조의 맥락에서 운동을 의미한다. 규칙을 지키면 자연스럽게 코드 작성 방식이 변경된다. 항상 모든 규칙을 따라야한다는 의미는 아니며, 이 규칙과 균형..

[Sourcetree] 제거(Remove), 폐기(Discard) 차이점

소스트리 → '스테이지에 올라가지 않은 파일' 오른쪽 클릭을 하면 아래와 같은 창이 나타납니다. 테스트를 마치고 코드를 원래대로 되돌리려고 하는데 헷갈리네요. 간단하게 정리하자면, 제거(Remove) : 해당 파일을 삭제. 폐기(Discard) : 내가 변경한 내용을 처음으로 되돌리는 것. 헷갈린다면 무조건 폐기(Discard)를 선택하면 됩니다. 제거(Remove)는 파일을 삭제해버리니까요!

Git 2022.11.30

[MySQL Workbench] 개행문자 넣는 방법 (feat. MariaDB)

공지 사항 내용을 작성 중 개행을 넣어야해서 일단 아무 생각 없이 일단 시도해봤습니다. 1. No Brain Version .....결과는....?? 엌ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ ..... ... 망할 ......쳇! 구글링 ㄱㄱ! 2. 쿼리문 버전 '\n' , '\r' 두개를 테스트!! 결과는....?? 쿼리문 ' ' 안에 개행문자를 넣어야 하는데 '\r' 은 개행 안 됨. '\n'은 개행 잘 됨!!! 끝!!!

JPA & SQL 2022.11.24

[Sourcetree] Bitbucket Google 계정 Clone 하는 방법

Bitbucket → 프로젝트 → 오른쪽 상단에 Clone 클릭 URL 복사하고 Sourcetree Clone 창에서 URL 복붙을 하면 다음과 같은 비밀번호 입력창이 뜹니다. 근데 저는 Bitbucket을 구글로 로그인했는데 비밀번호라니...?? (여기서 비밀번호 입력 후 엔터 치시면 안됩니다!) 구글 로그인의 경우 'Bitbucket App Password'가 있으며 그걸 입력하는 곳입니다. 그럼 이제 App Password를 발급받으러 Bitbucket으로 이동합니다. Bitbucket 홈페이지 오른쪽 상단에서 사람 아이콘 → Personal settings 클릭!! App passwords 클릭! Create passwords 클릭하여 password 발급받기!! ※주의 : 한번 발급받은 비밀번호..

Git 2022.11.21