전체 글

· JSP, Servlet
서블릿의 생명주기 서블릿의 생명주기는 서블릿 컨테이너가 관리한다. 서블릿 컨테이너는 웹 애플리케이션 서버와 서블릿 실행환경을 제공한다. 종류로는 Tomcat, Jetty, IBM WebSphere, Oracle WebLogic Server, GlassFish 등이 있다. 서블릿의 생명주기는 로딩(Loading) - 초기화(Initialization) - 서비스(Service) - 소멸(Destruction) 순으로 실행된다. 1. 로딩(Loading) : 웹 애플리케이션의 시작 시점에서 서블릿 컨테이너가 web.xml 파일이나 애노테이션을 통해 설정된 서블릿들을 로딩한다. 이때 각 서블릿 클래스의 인스턴스를 생성하고, init 메서드를 호출하여 초기화 작업을 수행한다. 2. 초기화(Initializati..
https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 문제 N×M크기의 배열로 표현되는 미로가 있다. 1 0 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 0 1 1 미로에서 1은 이동할 수 있는 칸을 나타내고, 0은 이동할 수 없는 칸을 나타낸다. 이러한 미로가 주어졌을 때, (1, 1)에서 출발하여 (N, M)의 위치로 이동할 때 지나야 하는 최소의 칸 수를 구하는 프로그램을 작성하시오. 한 칸에서 다른 칸으로 이동할 때, 서로 인접한 칸으로만 이동할 수 ..
· TIL
커밋 메시지를 수정하고 항상 아차 싶었던 적이 많아 글 남겨 봅니다. 깃 컨벤션 절대지켜...ㅜ 이 글에서는 원격에 push는 아직 하지 않은 상태에서 커밋 메시지를 수정하는 방법에 대해 기술합니다. 현재 레포지토리의 깃 로그를 확인해 봅시다. git log 가장 상단에 있는 커밋이 최신의 커밋입니다. 빨간색으로 origin/main, origin/HEAD 라고 써져 있는 커밋부터는 원격에 push 한 상태입니다. 따라서 원격에 있는 커밋메시지를 수정하려면 다른 글.. 찾아보셔요 저는 그래서 push 잘 안하려고요.. 여기서 우리가 수정해야할 커밋이 위에서 몇 번째 인지 확인해봅시다. 딱봐도 뭔가 아차 싶죠 두 번째네요.. q 입력하고 엔터쳐서 화면 빠져 나옵시다. 작업하고 있는 브랜치에서 입력합니다. ..
· TIL
Windows 의 기본 줄바꿈 문자는 CRLF Mac / Linux의 기본 줄바꿈 문자는 LF입니다. 운영체제에 따라 줄바꿈 문자가 다르기 때문에 git으로 프로젝트를 관리할 경우 문제가 생길 수 있습니다. IDE나 텍스트 편집 프로그램에서는 운영체제에 따라 자동으로 줄 바꿈 문자를 인식하지만 git 에서는 다른 파일로 인식할 수 있어 예기치 못한 문제가 일어날 수 있습니다. crlf will be replaced by lf the next time git touches it 이 오류의 경우도 git에서 자동으로 lf 형식으로 바꾸겠다는 오류 입니다. 운영체제 상관 없이 줄바꿈 문자를 설정하여 문제를 해결해봅시다. https://docs.github.com/ko/get-started/getting-sta..
· TIL
프로젝트를 git으로 관리할 때 class파일같은 실행파일까지 올릴 필요는 없습니다. 소스만 관리하고 싶습니다. 또한 협업하는 과정에서 운영체제가 다를 때, 다른 환경에서 작업할 때 .gitignore파일에 git에 올리지 않을 파일을 설정합니다. 하지만 추가해야하는 파일을 일일히 작업하기란 쉬운일이 아니죠. .gitignore를 자동으로 완성해주는 서비스 페이지 입니다. https://www.toptal.com/developers/gitignore gitignore.io Create useful .gitignore files for your project www.toptal.com gitignore.io 접속 해당사이트에 접속하여 작업하는 환경을 적어줍니다. 생성 버튼을 클릭하면 이렇게 gitignor..
· TIL
JAVA 프로젝트에서 필요한 라이브러리들을 관리해주는 빌드 도구에 대해 정리해봅니다. 빌드 도구를 통해 라이브러리 의존성을 관리하고 테스트를 자동으로 수행할 수 있습니다. JAVA 프로젝트에서 쓰이는 빌드 도구에는 Ant, Maven, Gradle등이 있습니다. 1. Ant 외부라이브러리(의존라이브러리)관리가 불편합니다. build.xml을 통해 스크립트 파일을 작성할 수 있지만 복잡하고 의존성 주입이 원격으로 하기 힘들다고 합니다. 2. Maven ant의 단점을 보완했습니다. 외부라이브러리 관리가 가능합니다. pom.xml을 통해 빌드 스크립트 파일을 작성합니다. (Project Object Model) 하지만 여전히 xml로 관리되고 xml자체가 프로그래밍 언어가 아니기때문에 정교한 통제가 불가하다..
· TIL
Git은 소프트웨어 형상관리시스템 중 하나이다 SCM : Software Configuration Management Stystem 형상관리 시스템의 하위 개념은 버전관리시스템이라고도 하는데 버전관리 시스템을 이용하면 변경사항을 추적 및 통제할 수 있다. 이런 버전관리 시스템은 중 널리 쓰이는 시스템은 Git이다. Git은 분산형 저장소로 변경사항을 중앙이 아닌 원격에서 저장 가능하다. 사용자의 OS에 깃을 설치하고 해당 폴더에서 git을 초기화 하면 형상 추적관리가 가능해 진다. 저장소 초기화 git으로 형상관리 시작하게 해준다. .git폴더가 생성된다. git init 저장소 복제 - 깃허브 등 원격 저장소에서 가져오기 git clone 복제할 URL 현재 작업중인 위치에서 해당 명령어와 함께 입력하..
· TIL
JAVA의 컴파일 방식은 인터프리터와 결합하여 이루어지는 하이브리드 방식이다. 컴파일과 인터프리터를 간단하게 설명하면 다음과 같다 컴파일 방식은 C와 C++ 같이 한번에 기계어로 번역하여 실행하는것을 말하고 인터프리터 방식은 한 줄 식 기계어로 번역하여 실행하는 것을 말한다. 컴파일 방식은 인터프리터에 비해 실행속도가 빠르다는 장점이 있으나 컴파일 단계에서 OS에 맞추어 변환되기 때문에 다른 OS에서 사용 불가하다는 단점이 있다. 인터프리터 방식은 컴파일방식에 비해 소스 수정을 간단하게 할 수 있으며 시스템간의 이식성이 뛰어나다는 장점이 있다. 하지만 실행 할 때마다 문법검사를 하고 소스파일이 있어 실행속도가 느리다는 단점이 있다. Java는 컴파일의 실행속도와 인터프리터의 이식성의 장점들을 조합해서 실..
· TIL
소프트웨어는 시스템 소프트웨어와 어플리케이션 소프트웨어로 나뉠 수 있다. System SoftWare : H/W 제어에 사용된다 주로 OS와 프린터, 마우스 ,스캐너 등에 사용되는 Device Driver 그리고 임베디드가 이에 속한다. 주요 사용 언어로는 C /C++, 어셈블리가 있다. Application Software : 주로 사용자가 사용한다. 예를들어 office나 한글 같은 오피스 프로그램, 게임, PuTTY, 의 프로그램, Gmail, Youtube, 네이버지도 같은 서비스도 이에 속한다. 어플리케이션 소프트웨어는 서버접속유무에 따라 나뉠 수 있다. Standalone Application S/W : 설치형이면서 내 PC인 local에서 단독실행되는 형태이다. 주요 소프트웨어는 포토샵, 알..
· TIL
1. Fully Connected (완전 연결 신경망), CNN (합성곱 연결 신경망) 지난 시간까지 배웠던 딥러닝 학습 방식은 완전 연결 신경망 입니다. 완전 연결 신경망은 인접하는 계층의 뉴런이 모두 연결되고 출력의 수는 임의로 정할 수 있습니다. 하지만 이 신경망은 모든 뉴런이 연결되면서 원본 데이터의 형상이 무시된다는 단점을 가지고 있습니다. 데이터 형상이 무시된다는것은 어떤 뜻일까요 간단한 흑백 이미지의 경우 height, width, channels 의 3차원의 배열의 형태로 이루어져 있습니다. 이미지의 세로 가로 위치 그리고 깊이(명암, 8비트 : 256)이라고 생각할 수 있습니다. 흑백이 아니라 컬러 이미지라고 하면 channles에 rgb 배열이 추가가 되어서 더 복잡한 차원의 데이터로 ..
엥이게되네
개발로그