Q0. 개요 데이터를 추출할 때, 정해진 포맷으로 편리하게 사용하는 경우를 예로 빗대어 보자. 전화번호는 무조건 010/011/016-XXXX-XXXX와 같은 형태를 가지고 있다. 이러한 패턴으로만 입력할 수 있도록 '패턴을 이용한 데이터 정제'가 정규식이라고 보면 된다. 하지만, 여태까지 정규식에 대해서는 구글링을 해서 나오는 정해진 포맷과 사용 예제를 그대로 복사해서 사용할 뿐 제대로 찾아서 공부를 해본적이 따로 없었다. 그래서 개발 이해도 향상을 목적으로 이번 기회에 정규식에 대해 정리한다. Q1. 정규식이란 문자를 필터링하여 특정 패턴으로 표현하기 위한 규칙이라고 본다. 쉽게 말하면, 문자열을 판독하는 언어 패턴으로 빠르게 검색 및 유효성 체크를 한다. - 주요 용어 정리 (패턴, 메타문자, 문자..
Q1. 스크립트에서 변수의 복사시 발생되는 문제 먼저 스크립트에서 객체를 복사하여 새로운 변수에 담고 사용하다보면 서로 동기화가 되어있는지 서로가 동일하게 변경되는 현상을 확인한 적이 있다. 이러한 현상은 자바스크립트에서 얕은 복사를 했기 때문에 발생되었다고 한다. - 깊은 복사와 얕은 복사란 뭘까 원시 타입 (Primitive Type) number, string, boolean, null, undefined, symbol. 위 타입은 데이터 생성 및 복사시 새로운 메모리 공간에 독립적으로 메모리 재할당하여 저장된다. 때문에 복사나 수정시 기존의 값이 변하지 않는다. 참조 타입 (Reference Type) 원시 타입을 제외한 나머지 ( Array, Function, Object ). 원시 타입과 같이..
2023.11.24 - [오답 노트/Server] - [Tomcat] Tomcat 정의, 폴더 구조 정리 [Tomcat] Tomcat 정의, 폴더 구조 정리 본 설명에 앞서 서버에 대해 먼저 말해야 할 것 같다. 서버란, 클라이언트에게 네트워크를 통해 정보나 서비스를 제공하는 컴퓨터 시스템으로 프로그램 혹은 장치를 의미한다. 우리가 접하는 모 jinu213.tistory.com 이전에 작성했던 Tomcat 디렉토리의 bin에 재구동/시작/중단/생성과 같은 명령어 파일들이 모여있다. 파일들의 확장자를 보면 .sh이나 .bash와 같은 셸 크르립트들이 들어있는걸 확인할 수 있다. Q1. 여기서 셸 스크립트(= Shell Script)란 Shell : (언어) 운영 체제의 서비스에 엑세스하기 위한 사용자와 O..
Q0. 개요 프로세스 실행 중 여러 가지 에러(시스템/로직/DB 등)가 발생하는 경우를 위해 예외 처리라는 것이 존재한다. 예외 처리에는 try ~ catch 또는 throw를 사용하거나, throws 클래스를 상속받는 3가지 방법이 있다. 예외 처리는 에러가 발생하여 시스템이 중단되는 현상을 방지하기 위해 사용한다. 예외 처리는 어떻게 선언하고 메세지를 뿌릴지만 알아도 된다. Q1. try ~ catch문 기본적인 구조 try ~ catch ~ finally구문을 로직에 감싸는 형태로 사용된다. (자바에서 에러발생시 뱉어냄) public void test(){ int num1; int num2; try{ /* 예외처리를 지정할 코드영역 (메서드 전체로 잡거나 일부만 지정할 수 있다) 오류가 존재하는 경..
Q0. 개요 자바를 배우면서 가장 먼저 접했던 키워드는 변수이다. 그런대 이 변수와 인스턴스 그리고 객체는 어떻게 다른지 이해가 잘 가지 않았다. 그래서 비교하는 겸 제목에 언급했던 키워드(변수/상수/리터럴/인스턴스/객체)들에 대한 정의를 먼저 정리한다. Q1. 키워드 정의 목록 잘 이해가 되지 않는 부분들이 있어서 예를 들어서 다시 정리해본다. public class Main{ //클래스 class Sub1(){ private String str = "TEST"; //변수는 str를 리터럴 "TEST"로 초기화 private final int num = 3.14159; //변수이자 상수 num를 리터럴 3.14159로 초기화 } class Sub2(){ //클래스 private String str; /..
Q1. 형 변환이란 해당 변수의 타입을 다른 타입으로 변환하는 것이다. 자바에서는 2가지의 형 변환이 있는데, int num = 100; String str1 = num; //숫자를 문자타입으로 대입하는 경우 '묵시적 (자동) 형 변환' String str2 = (String) num; // (String)라는 타입을 지정하는 '명시적 (강제) 형 변환' 묵시적 형 변환이 적용되는 경우가 그렇게 많지가 않았고, 되려 명시적을 사용하는 경우는 많이 있었다. 제목과 같이 toString과 valueOf는 또 다른 명시적 형 변환 방법이라고 보면 된다. 위 두 기능을 아래와 같은 표로 정리를 하였다. Q2. 결론적으로 개발자라면 가장 많이 접하는 nullPointException 에러를 유발하는 주 요인이다...