💻 IT 14

StandardServer.await: Invalid command 'GET / HTTP/1.1' received

StandardServer.await: Invalid command 'GET / HTTP/1.1' received 자꾸 에러날 때마다 톰캣 에러가 많다 (톰캣 버리고 싶..) 오늘은 기초적일 수 있는 실수를 했다. 톰캣 서버 구성 후 서버를 열어도 계속 위의 메시지만 출력되면서 서버가 정상적으로 작동되지 않았다. HTTP 포트가 아니라 Tomcat admin port로 접근해서 발생한 에러였다. 확인 방법은 크게 두 가지가 있다. 1. server.xml 파일 확인하기 server.xml 파일을 열어서 확인해봤을 때 아래처럼 shutdown으로 정의된 포트로 접근하면 위의 에러가 발생한다. 아래의 Connector 태그의 포트로 접근하면 서버에 정상적으로 접근할 수 있다. 2. 서버 더블클릭하기 현재 사..

[Git] git으로 코드 작성자 찾는 법

📌 git 코드 작성자 찾기 git을 사용하면서 코드의 작성자를 알고 싶은 경우가 있다. 코드에 대해서 질문하거나 잘못된 코드인 경우 피드백을 주거나충돌이 났을 때 소통하기 위해 등등... git을 쓰다보면 여러 가지 경우가 있다. 관련 명령어를 사용하면 쉽게 해당 코드 작성자를 찾을 수 있다. 어떤 파일의 특정 코드를 누가 작성했는지 찾아내기 : git blame git blame [파일명] 이름이 무서운 blame... git blame 뒤에 특정 파일명을 입력하면 해당 파일에 작업한 개발자의 아이디를 보여준다. 특정 커밋아이디를 작성한 사람이 누구인지 찾기 : git show git show [커밋 아이디] 특정 커밋 아이디를 작업한 개발자를 알아내기 위해서 사용하는 명령어가 git show이다. ..

💻 IT/GIT 2022.11.14

[Git] git branch 다루기 (branch 만들기, 삭제하기, 이동하기)

📌 브랜치란? git은 root commit(뿌리가 되는 커밋)을 시작으로 해서 여러 개의 가지가 있는 나무와 같은 모양이다. 명령어 git status 를 실행하면 현재의 브랜치 위치를 알 수 있다 → On branch master 그리고 여러 명의 개발자가 함께 개발하기 때문에 독립적인 작업을 하기 위해 필요한 것이 브랜치이다. 다른 브랜치의 영향을 받지 않고 작업하기 위해 잠시 곁가지를 만들어둔다고 생각하면 된다. 업무에서는 기능별로, 모듈별로 브랜치를 나눠서 사용하다가 해당 기능이 완성되면 master 브랜치로 병합하는 것이 일반적이다. 그러니까 정리해보자면 잠시 곁가지를 쳐서 내가 해야할 작업을 하고 완성이 되면 그 곁가지를 다시 master로 합치는 것이다. 📌 브랜치 관련 명령어들 브랜치 만..

💻 IT/GIT 2022.11.03

[DataBase] SELECT문의 작성 순서와 실행 순서

📌 select문의 작성 순서 & 실행 순서 데이터베이스에서 데이터를 조회할 때 가장 흔하게 사용하는 select문. 워낙 많이 써서 이제는 눈 깜고도 select ... from ... where을 치곤 한다. (오타주의) 그런데 select문의 작성 순서와 실제로 데이터베이스에서 실행되는 내부적인 실행 순서는 다르다. 이 실행 순서를 유의하고 있으면 데이터베이스 구조에 대해서 조금 더 이해하게 될 수 있을 것 같다. 각 절들의 작성 순서 (워낙 익숙함) SELECT FROM WHERE GROUP BY HAVING ORDER BY LIMIT 각 절들의 실행 순서 FROM : 어느 테이블을 대상으로 할 것인지 먼저 결정 WHERE : 해당 테이블에서 특정 조건(들)을 만족하는 row들만 선별 GROUP ..

[StandardEngine[Catalina].StandardHost[localhost].StandardContext[]]

구성요소 [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]]을(를) 시작하지 못했습니다. 톰캣 서버 구성 후 에러가 뜨면서 너무 싫은 빨간 글자만 계속 나왔다. 결론은 클린으로 해결했다. 클린하는 순서에 관련이 있는지는 모르겠지만 계속 클린을 해도 안되더니 아래 순서로 클린하니까 서버가 정상 구동 되었다. 1. Tomcat Server Clean 2. Clean Tomcat Work Directory 3. Project Clean 결론.. 이클립스가 말을 안 들을때 10번 중 8번은 겸손하게 클린하면 되더라...

[DataBase] NULL이란? NULL 값 조회, 에러 없이 다루기

📌 NULL이란? 데이터베이스에서 NULL값은 특정 컬럼에서 값이 존재하지 않는 상태를 의미한다. 숫자 0 과는 전혀 다른 개념이다. 숫자 0이 들어가 있다면 값이 있는 상태이다. 빈 문자열과도 다르다. 빈 문자열이 있다면 빈 문자열이 값으로 있는 상태이다. 특정 컬럼 설정 시 NN (Not Null) 속성을 주면 해당 컬럼은 null값이 불가 하다는 의미이다. primary key로 설정될 경우 자동으로 NN도 설정된다 📌 NULL을 다루는 방법 -- NULL 조회하기 SELECT * FROM member WHERE address IS NULL; -- NULL이 아닌 데이터만 조회하기 SELECT * FROM member WHERE address IS NOT NULL; -- 하나라도 NULL인 데이터 ..

[Git] git reset하기 (soft, mixed, hard 옵션)

작업하다 보면 commit을 잘못하는 경우가 종종 발생한다. 에러 나는 코드로 커밋하거나 등등 커밋이 꼬이는 경우가 많다. 그런 경우에 잘못된 코드를 다 수정하고 다시 커밋하는 방법도 있지만 심하게 꼬인 경우에는 그냥 이전 버전으로 되돌려버리는 git reset을 사용할 수도 있다. 📕 git reset에 대해 잘 이해하기 위해 알면 좋은 개념 : HEAD HEAD : 어떤 커밋 하나를 가리키는 개념으로 상황에 따라 다르지만 보통 가장 최근에 한 커밋을 가리키고 있다. 커밋을 할 때마다 HEAD는 매번 더 새로운 커밋을 가리키게 된다. HEAD가 가리키는 커밋에 따라 working directory가 구성된다. 결국 git reset은 HEAD가 과거의 커밋을 다시 가리키게 하는 개념이다! 📌 Git r..

💻 IT/GIT 2022.10.06

동적 배열(dynamic array) vs 정적 배열(static array)

📌 1. 배열이란? 배열은 한개의 데이터가 아닌 여러 개의 데이터를 담기 위한 자료구조이다. 그런데 C언어의 배열과 파이썬의 리스트는 다르다. 나는 개인적으로 파이썬을 입문 언어로 맨 처음에 배웠는데 자료들의 크기, 타입 상관없이 원하는 대로 마구 담을 수 있었던 파이썬의 친절한 리스트와 달리 C언어랑 자바의 배열은 냉정하고 차갑기만 했다. 자료 구조를 조금 더 이해하고 나서 동적 배열과 정적 배열의 차이 때문에 그렇다는 것을 알게 되었다. 일반적으로 배열이라고 하면 정적 배열을 의미한다. 그래서 나처럼 파이썬으로 입문해서 친절한 리스트로만 배열에 익숙하신 분이라면 이 차이를 알고 정적 배열도 이해하는 것이 중요하다고 생각한다. C언어의 배열 (정적 배열) 크기가 고정돼 있다 → 연속적인 칸을 예약하여 ..

[DataBase] 데이터베이스에서 데이터 조회하는 법

📌 1. 데이터 조회의 핵심, SELECT와 WHERE 데이터를 조회 할 때 기본 문장은 SELECT (조회의 대상) FROM (테이블 이름) WHERE (조건절) 조회의 대상이 명확하지 않을 경우 * 을 사용하여 특정 테이블에 모든 컬럼을 검색 할 수 도 있음 -- * : asterisk, 모든 값을 다 조회함 -- FROM : 어느 테이블로부터 데이터를 조회하는지 나타냄 -- main DB의 member 테이블 SELECT * FROM main.member; -- 특정 컬럼을 조회 SELECT email, age, address FROM main.member; -- WHERE : 특정 조건을 만족하는 ROW만 조회 SELECT * FROM main.member WHERE email = 'abc@nav..

[Spring Boot] Spring Boot 프로젝트 환경 설정 & 기초 개념

스프링 부트란? 스프링 부트는 오픈 소스 자바 프레임워크로 기존 스프링에 톰캣 서버를 내장하고 여러 편의 기능이 추가되어 있다. 서버가 내장되어 있어 빠르고 편리하게 설정할 수 있기 때문에 개발자에게 “Micro Service”를 구현할 수 있도록 도와준다. Micro Service는 각 과정이 가볍고 간단해서 개발자가 개발과 배포를 독립적으로 쉽게 할 수 있도록 해주는 개념이다. 스프링 부트 시작하기 스프링 부트를 잘 다룰 수 있는 실력자라면 직접 프로젝트를 설정 & 생성해도 되겠지만 나같은 꿈나무들을 위해서 쉽게 프로젝트를 생성할 수 있도록 도와주는 스타터 사이트가 있다. 아래 링크로 접근해서 간단하게 원하는 프로젝트 속성을 선택한 다음 하단 GENERATE 버튼만 클릭하면 스프링 부트 프로젝트가 생..

💻 IT/Spring 2022.09.23
반응형