본문 바로가기
기타

[웹 개발자] 개발업무 _ 자바, 스프링, 리눅스, 툴

by 배추잠자리 2021. 5. 25.
반응형


요즘 IT가 굉장히 핫해지는것 같습니다.
특히 웹 시장( 자바 기반의 스프링 프레임워크 기반)은 항상 수요가 있고, 기업 입장에서도 좋은 웹 개발자를 뽑기 위해 노력하고 있죠~

그러다보니 국비학원에서 IT의 전반적인 지식이나 언어에 대한 이해도 없이 웹 개발 분야로 뛰어들게 되는 경우도 많은것같아요.

신입으로서 도움될만한 기초지식과 업무 툴, 필수로 알면 좋은 리눅스 명령어들.
분명 알고는 있었지만 막상 개발업무를 받게 되서 할때 기억이 나지 않아 헤맬수 있는 부분들을 정리해보겠습니다.

▶ int형 Null Pointer Exception ? 0 ? null ?

Java 와 null 관계는 짜증을 유발합니다.
int 에는 null 이 들어갈 수 없음을 알고 있음에도, 웹(view)와 같이 개발하다보면 " 어? 왜 안되지?" 하면서 초조해지면서 아는건데도 해결을 못할때가 많아요.... 애초에 int 때문이라는 점을 망각해버린다는.....

integer 사용해보기

 

결과는 ?


int형의 null을 비교해야할 일이 생기게 되면 해결 방안으로 사용하면 좋다. 간단하게 차이를 보자면,

int형 변수는 기본형(Primitive type) 변수이고, null 로 초기화 불가능, 0으로 초기화할 수 있다.
Integer형 변수는 객체형 변수로서 참조형이고, 실제 값이 아닌 객체의 주소를 저장하고 있기때문에 null을 가질 수 있는 것습니다.

과거에는 언박싱(unboxing)을 통해서 참조형인 integer를 기본형으로 바꿔야했지만, JDK 1.5부터는 이것을 자동으로 해주는 기능이 추가되었기 때문에 integer도 연산이 가능합니다.

메모리에 대해 고려할 때 Integer는 int보다 더 많은 메모리를 사용하지만,
메모리 할당의 차이는 고려할 사항이 없습니다.

또는 웹에서 넘어올때 임의로 정수 0 을 삽입해서 컨트롤러로 보내는 방법이 있습니다.


▶ String 변수, 빈값인가 ? null인가 ? 비교는 ?

String변수, null과 빈값

 

결과는 ?


대부분의 코딩을 배우면 String 비교는 equals 를 사용하는데요.

null 과 빈값을 동시에 분기할때는
변수 == null || "".equals(변수) 를 사용하곤하죠?

근데 간혹 null 과 빈값을 헷갈려하는 경우도 있는데요.
null과 빈값은 아예 다른 개념입니다 !

사진에서 설명하는 StringUtils.isEmpty 라이브러리를 사용함으로써
null 과 빈값을 한번에 체크해 줄 수 있으니
좀 더 효율적인 코딩에 활용해보면 좋을것같습니다~

이것또한 무조건 StringUtils 라이브러리를 써라 라기보다는 이러한 방법도 있다는 다양한 접근성을 알려주고자 하는 말입니다 !


▶ 소스코드 비교하는 툴 WinMerge

WinMerge 라는 프로그램은 양 쪽 소스코드 혹은 텍스트를 비교해주는 프로그램입니다.

WinMerge 프로그램 비교실행


좌측과 우측에 각각 비교할 소스코드를 작성한다.

만약에 좌측과 우측이 같은 텍스트라면??

소스코드 일치시 동일하다는 확인창



만약에 왼쪽 소스코드와 오른쪽 소스코드가 다르다면 !!!?

다른 부분을 체크해준다.


이런 툴은 마이그레이션을 직접 하거나? 혹은 기존에 개발되어있던 소스코드를 복사해와서 추가 개발 후에 에러가 난다면 어떤 부분을 고쳐야하는지.

아니면 MySQL 구문을 티베로나 다른 DB쿼리로 바꿔야할때 양쪽에 mapper 쿼리문들을 두고 비교하면서 변경이 안된 쿼리문들을 찾아낼 수 있죠.

같은 파일명인데, 일자가 다르다면 어떤 부분이 달라졌는지도 확인할 수 있씁니다.

개발업무를 떠나서 데이터 비교를 요청받았을때도
A의 데이터와 B의 데이터를 각각 두고 비교실행을 하면
어떤 데이터가 다른지 바로 찾아낼 수 있습니다.

비교하는 프로그램으로 WinMerge는 괜찮은 프로그램입니다.


▶ 적어도 서버(리눅스)를 조금은 다룰줄 알아야지 !

대부분 비전공자라면 리눅스를 모르는 상태로 취업을 하게 되는 경우도 있습니다.

신입 웹개발자로서 최소한의 명령어

1. sh 파일 실행시키기 ( 예를 들어 test.sh 라는 파일이 있다. )
sh test.sh 또는 ./test.sh 라는 명령어를 날려주면 sh파일을 실행할 수 있습니다.
신입개발자로서 sh파일을 다루는 경우는 톰캣서버 start 나 shutdown 하는 정도 있을것 같네요.

 

2. 톰캣서버 log 확인하기
가동중인 서비스의 로그는 상당히 길죠.... 잘 모르고 vi project.log 를 하거나 cat project.log를 한다면
전체 로그를 띄우는 것이기 때문에 상당히 오래걸리고 멈춰버릴 수 있습니다.
tail 의 뒤에 숫자만큼 보고싶은 줄만큼 화면에 보여주고.
-f 옵션을 주게되면 새로 업데이트된 내용을 갱신해줍니다. ( 즉 실시간 모니터링으로 log를 확인할 수 있습니다. )
tail -f -n 20000 log파일명

 

3. war 또는 tar 압축 풀기
war파일이나 tar파일 압축을 푸는 경우는 서버에 프로젝트를 올려달라는 경우가 되겠네요.
혹은 jdk 나 DB 백업파일 등 압축풀일은 많습니다.
톰캣 압축파일 풀어달라는 요청에 헤매면 안되겟죠 ??????

war 같은 경우에는 jar xvf 파일명.war
tar 같은 경우에는 tar -xvf 파일명.tar
tar.gz 같은 경우에는 tar -zxvf 파일명.tar.gz

 

4. 그 외 기본적인 것들과 필요사항

ls 또는 ll 디렉토리 목록
pwd 현재 작업중인 디렉토리 정보
cd 경로 이동 예를 들어 cd /usr/local
rm 파일삭제
mv 파일 혹은 디렉토리 이동
cat 파일 내용 출력 및 파일 여러개를 하나로 합치기


firewall-cmd --state 방화벽 확인
systemctl stop firewalld 방화벽 죽이기
netstat -an | grep LISTEN 실행중인 포트 확인

이정도면 웹개발자 신입으로서 리눅스 명령어는 충분한거 같습니다.

 

반응형

댓글