* 스택, 큐, 덱이란? 데이터 값을 저장하는 기본적인 구조로 일차원의 선형(linear) 자료구조입니다. 여기서 선형구조란? 데이터를 저장하기 위한 기본적인 형태로 데이터가 '일렬로 나열'되어 있을 뿐만 아니라 데이터 간에 순서가 있고 논리적으로 이어져 있는 구조를 의미합니다. (배열/리스트와 유사하게) 값을 저장(insert 또는 set)하는 연산과 저장된 값을 꺼내는(remove 또는 get) 연산이 제공된다. 그러나 매우 제한적인 규칙(LIFO, FIFO)등을 따릅니다. 1. 스택 스택(Stack)은 "쌓다"라는 의미로, 데이터를 차곡차곡 쌓아 올린 형태의 자료구조입니다. 조금 더 설명하자면, 위의 사진과 같이 데이터가 순서대로 쌓이며 가장 마지막에 삽입된 자료가 가장 먼저 삭제되는 구조를 가지고..
빌드 관리 도구에서 maven, gradle의 차이점이 궁금해서 찾아보게 되었다. 1) Maven vs Gradle Maven 같은 경우는 스프링 프로젝트에서 pom.xml이란 이름으로 쓰고, Gradle은 스프링부트, 안드로이드에서 쓰는 걸로 알고 있다. 처음에 단순히 알기 전엔 Maven 같은 도구는 그저 라이브러리를 쉽게 Maven Repository에서 받아오기 위해 사용하는 건줄 알았지만 아니었다. 물론 쉽게 받아올 수 있지만 그 외에도 다른 기능이 많았다. 2) Maven이란? 프로젝트를 진행하게 되면 단순히 자신이 작성한 코드만으로 개발하는 것이 아니라 많은 라이브러리들을 활용해서 개발을 하게 된다. 이 때 사용되는 라이브러리들의 수가 수십개가 훌쩍 넘어버리는 일이 발생해 이 많은 라이브러리..
런타임에서 발생하는 NullPointException 방어를 위해 만들어둔 로직체크는 코드의 가독성과 유지 보수성이 떨어진다. 어떻게 null 을 다루면 좋을 지에 대한 해결책을 함수형 언어에서 찾았다. 함수형 언어는 존재하지 않을 수도 있는 값에 대한 별도의 타입을 가지고 있다. 개발자들은 여러가지 API 를 통해 간접적으로 값에 접근할 수 있다. 자바는 함수형 언어로부터 영감을 받아 자바 8에 처음 Optional 이 도입 되었다. java.util의 Optional는 java 8부터 지원하는 객체를 감싸는 래퍼 클래스(Wrapper class)이다. 객체를 Optional 안에 넣어서 한 번 감싸는데 이 때 객체는 null일 수도 있고 null이 아닐 수도 있다. Optional을 사용함으로써 Op..
인프런에서 김영한님 스프링 강의에서 빌드하는 과정 중 cmd창에서 gradlew build가 되지 않았다. 이 때, 환경변수 설정이 되지 않아 설정된 위치를 찾지 못해 빌드되지 않는 것 같아 환경 변수 설정을 해주었다. * 참고로 스프링 부트는 톰캣 서버가 내장되어 있기에 jar 형식으로 빌드하면 별도의 서버 구축 없이 해당 파일만 실행 시키면 동작하게 된다. 따라서 만약 서버가 구축된 환경이라면 war 형식으로 빌드하여 해당 파일을 서버에 배포해주면 된다. 이클립스 프로그램을 사용할 때(자바 개발 시) JAVA가 설치된 위치를 찾게 해주기 위해서 환경변수 설정을 해야한다. 제어판 검색 제어판 > 시스템 및 보안 클릭 제어판 > 시스템 및 보안 > 시스템 클릭 제어판 > 시스템 및 보안 > 시스템 > 고..
파일 질라로 윈도우 서버에 있는 파일을 리눅스 서버로 이동 중 permission denied 오류가 발생했습니다. 이 때 리눅스 서버로 들어가서 옮기려고 하는 파일들의 경로에도 권한 부여를 해야 함을 알 수 있었습니다. chmod -R 777 해당 서버의 경로 이렇게 부여하고 난 뒤 파일 질라로 이동하니 이동이 완료 되었습니다. 이 상황을 통해 chmod 777의 기능에 대해서 알아보던 도중 chmod -R 777의 기능과 사용 권한을 777로 설정하면 안되는 이유에 대해 알아보게 되었습니다. 1. linux 파일 사용 권한 이해 Linux에서 파일에 대한 액세스는 파일 사용 권한, 속성 및 소유권을 사용하여 운영 체제에 의해 제어됩니다. Linux 파일 시스템 사용 권한 모델을 이해하면 인증된 사용자..
1. GET방식 한글 깨짐 이클립스 server.xml 에서 port=8080과 port=8009두개의 connector에 URIEncoding="UTF-8"을 추가한다. 2. POST 방식에서 한글 깨짐(mapping 빠짐) web.xml 아래와 같이 filter class 를 등록 ... Set Character Encoding filters.SetCaharterEncodingFilter> encoding UTF-8 Set Character Encoding /* 3. 소스파일 (jsp)에 utf-8 내용 추가
echo "set names utf8mb4;" > test_schema.sql echo "set names utf8mb4;" > test_data.sql 해당 명령어는 "test"라는 이름의 데이터베이스에 대해 "utf8mb4" 문자 세트를 사용하도록 설정하는 SQL 스크립트인 "schema.sql"을 생성합니다. echo: 주어진 텍스트를 표준 출력으로 보내는 명령어입니다. "set names utf8mb4;": 데이터베이스 연결에 대한 문자 세트를 "utf8mb4"로 설정하는 SQL 문입니다. "utf8mb4"는 유니코드 문자를 지원하는 문자 세트로서, 이를 사용하면 다양한 언어와 이모지 등의 문자를 저장하고 검색할 수 있습니다. >: 리다이렉션 연산자로, 왼쪽에 있는 결과를 오른쪽에 있는 파일로 리..
1. 개념 서브쿼리(subquery)란 다른 쿼리 내부에 포함되어 있는 SELETE 문을 의미한다. 서브쿼리를 포함하고 있는 쿼리를 외부쿼리(outer query)라고 부르며, 서브쿼리는 내부쿼리(inner query)라고도 부른다. 서브쿼리는 다음과 같이 괄호() 로 감싸져서 표현 된다. - 실행 순서(서브쿼리 실행 → 메인(부모) 쿼리 실행) (select * from table) 같이 괄호()안에 있는 쿼리를 서브 쿼리라 말한다 서브쿼리(=자식쿼리, 내부쿼리) - 메인쿼리 컬럼 사용 가능 메인쿼리(=부모쿼리, 외부쿼리) - 서브쿼리 컬럼 사용 불가 2. 서브쿼리 위치에 따른 명칭 SELECT col1, (SELECT ...) -- 스칼라 서브쿼리(Scalar Sub Query): 하나의 컬럼처럼 사..