본문 바로가기

이야기

(41)
자바에서 원본과 복사본을 표현하는 방식 다른 언어도 그런지는 모르겠지만, 일단 자바에서는 두 가지 방식으로 원본과 복사본을 표현하는 것 같다. 공식은 아니지만 관례적으로 그렇게 쓰는 것이니 이런 용어를 보면 from - to 이것과 같다고 보면 될 것 같다. 1. source - target 어디에서 어디로를 표현할 때, 어디에서 파트를 source라는 용어로 표현한다. 또한 어디로 파트를 target이라는 용어로 표현한다. 그래서 target만 보인다면 해당 클래스에 직간접적으로 관여를 하는 source에 해당하는 파트가 존재하는 것이다. 2. from - to 직접적으로 표현할 때 이렇게 표현하고들 한다. 말 그대로 from (어디에서) to (어디로) 라는 말이다. 개인적으로는 source - target 보다는 명확하다고 보지만, fr..
Java instanceof 사용이유 및 주의사항 자료형이 무엇인지 궁금할 때 알아내기 위하여 사용한다. 하지만 SOLID 원칙에 위배되는 항목이 많으므로 최대한 자제해야 한다. 사용할 때는 [특정 자료형]인지 아닌지 궁금할 때 사용하는 것을 추천한다. [어느 자료형]인지 궁금해서 사용하는 것은 자제해야 한다. [어느 자료형]인지 궁금하다면, 개별 자료형을 알아내는 클래스를 별개로 다형성을 이용해서 구현하라. 왜 SOLID 원칙에 위배되는가? 자료형을 알고 싶은데, 객체가 무엇인지 어떤 정보를 반환하는지, 불필요한 정보를 노출한다. (캡슐화) 변경이나 추가시 instanceof를 사용하고 있는 모든 곳을 수정해야 한다. (개방폐쇄원칙) 해당 클래스뿐 아니라 클래스의 인터페이스의 구현체를 모두 알아야 하는 불필요한 책임이 부가된다. (단일책임원칙) 더불어..
Mapper를 활용하는 SI 프로젝트 업무 [2] 어찌저찌 하나의 API 만들었다. 물론 테스트는 하기 전이라서 제대로 돌아가는지 알 수 없었기 때문에 테스트가 필수적인 상황이었다. 그런데... 테스트 코드 따윈 프로젝트에서 찾아볼 수 없었다. 테스트 코드를 작성하는 것이 당연하고 올바르지만 일정이 촉박하니 일단 포스트맨으로 쏴서 DB 변경이 되는 것까지만 확인을 하라고 하신다. 하지만... 포스트맨으로 테스트를 하는 것이 얼마나 끔찍한 일인지 알아버렸다. 일단 어디에서 오류가 났는지 명확하게 알 수가 없다. 일단 에러가 나면 디버깅 돌리면서 "여긴가?" 이 짓거리를 반복해야 한다. 둘째로 포스트맨에 성공 코드가 반환됐지만 DB 변경이 없으면 머리가 지끈하다. 아니 테스트 코드가 있다면 그냥 기능이 돌아가는지 아닌지 그건 명확하게 알텐데 그게 불가능하다..
Mapper를 활용하는 SI 프로젝트 경험 [1] SI 프로젝트에 참여했다. Mapper라는 폴더가 눈에 띈다. JPA 라이브러리가 떡하니 build.gradle 안에 포함되어 있지만 현실은 MyBatis Only. 처음에 무엇을 해야할지 몰라서 이것저것 문서부터 열어봤다. 기획서에는 뭐가 적혀있고, API 명세서는 이건 또 뭔 이야기고, 수없이 많은 문서는 대체 무슨 목적인지 알 수가 없었다. 그리고 작성 일자도 몇 달 전이고 갱신조차 안되어서 이게 지금 상황을 반영하는지 그것조차 의문이 들었다. 이것저것 젖혀두고 어찌저찌 현업 개발자분들의 도움을 받아서 무엇을 해야하는지 대략적으로 알았다. 가장 먼저 해야할 일은 API 명세서를 확인하는 것이었다. API 명세서는 완성된 기능, 미완성된 기능, 진행 중인 기능이 적혀있었다. 프론트엔드 개발자는 해당 ..
VM Arguments 설정이란? JVM 구동 시 식별자로 활용되는 값이 존재함. 해당 값은 시스템 등록정보로 활용되며, 키-값 형태로 설정하여 활용할 수 있음. -D 명령어를 이용하여 시스템 등록정보로 활용하는 변수를 수정이 가능함. IDE 마다 사용방식이 다소 다름.
POSTMAN 사용방법 및 간단한 대체재 소개 클라이언트와 서버가 서로 요청과 응답을 주고 받을 수 없는 상황일 경우 간단하게 요청을 주고받는 테스트를 할 수 있는 방법이 있음. 요청은 언제나 완벽하게 들어올 것이라 가정하고, 가상으로 요청을 만들어서 주입하는 것임. 1. POSTMAN 가상으로 요청을 제공하는 값 중 가장 유명한 도구임. 과거에는 크롬 확장앱이었으나 지금은 stand-alone 프로그램으로 배포됨. 클라이언트 요청에 대한 것은 대부분 해결할 수 있음. 스탠드 얼론이 부담스럽고 그냥 간단히 브라우저에서 처리하고 싶다면... 요청, 응답 정도만 간단히 해결할 정도면 충분하다면 다음 앱을 추천함. 2. Talend API 크롬 확장앱임. 직관적이고 간단한 방식임. 유명하고 기능이 빵빵한 POSTMAN을 사용해도 문제 없으나 간단하게 사용..
VSCODE 탐색기 계층 구조 들여쓰기 설정하기 이번에는 간단하게 VSCODE 설정 중 일부에 대해서 알아보고자 함. 1. VSCODE는 기본적으로 계층 구조에 대한 들여쓰기가 적게 설정되어 있음. 2. 계층이 깊어질수록 보기가 힘들어짐. 3. 들여쓰기 설정을 변경하면 오른쪽처럼 계층 구조가 명확하게 구분됨. 4. 명확해서 구조를 확실하게 파악할 수 있음. 설정 방법은 간단함. 1. ctrl + , 2. 해당 명령어로 기본 설정을 열 수 있음. 3. workbench.tree.indent 4. 해당 키워드를 입력함. 5. 트리 들여쓰기를 픽셀 단위로 제어할 수 있음. 6. 왼쪽은 기본값으로 8 픽셀로 설정된 상태임. 7. 오른쪽은 수정된 값으로 16 픽셀로 설정한 상태임. 8. 12 픽셀, 16픽셀 정도가 적절하며 16 픽셀을 추천함. 9. 16 픽셀..
트렌드 따라가기란 참 머리가 아프다 이제 국비수료하고 개발자로써 어느 방향으로 나아가야 할 지 고민하는 수준임. 최소한 무언가 하나라도 전문성을 갖춰야 개발자라고 말할 수 있지 않을까? 자바를 하든, 자바스크립트를 하든... 그걸 기반으로 다른 언어를 배운다면 빠르게 습득이 가능할 것 같으니. 그런데 이것저것 업계 동향을 따져보니 아무리 봐도 클라우드에 대한 지식이 너무나 중요해보임 그런데 지금 언어 하나도 제대로 못 다루면서 저걸 다루자면 개발자가 아니라 엔지니어가 되는 게 아닐까? 뭘 하면 경쟁력이 있겠다! 보이는 것 같긴 한데 내가 거길 따라가기 힘드니 답답한 마음이 듬...
연산(Operations), 연산자(Operator), 피연산자(Operand), 연산식(expressions) 연산, Operations 데이터를 처리하여 결과를 산출하는 것. 기반 지식 데이터 처리 결과 산출 연산자, Operator 연산을 하기 위해 사용되는 표시, 기호. 피연산자, Operand 연산되는 데이터. 연산식, Expressions 연산자와 피연산자를 이용하여 연산의 과정을 기술한 것.
프로그래밍 패러다임 개발자의 입장에서 바라봤을 때, 어떤 방식으로 프로그램을 구현해야 할까? 이걸 프로그래밍 패러다임이라고 표현함. 사용하던 구현 방식의 단점을 극복, 보완하기 위한 순서임. 절차 지향 → 객체 지향 → 함수형 과정에 집중하느냐, 결과에 집중하느냐 따라서 두 분류로 나뉨. 1. 명령형 프로그래밍 절차지향 프로그래밍 : 절차의 연속 객체지향 프로그래밍 : 객체 + 객체 2. 선언형 프로그래밍 함수형 프로그래밍 : 순수함수 + 일급객체 비교를 하자면... 명령형 : 구현을 위한 알고리즘을 명시하되 목표는 명시하지 않음. (How) 명령형 : 프로그램은 명령의 수행이며, 어떻게 구현하는지 그것이 중요하다. 선언형 : 목표만 명시하고 알고리즘은 명시하지 않음. (What) 선언형 : 프로그램은 함수의 계산이며, 무..