전체 글 148

도커와 가상머신

- 도커란? 도커란 어플리케이션을 패키징 할 수 있는 툴이다. 컨테이너라고 불리는 소프트웨어 유닛 안에 어플리케이션과 그에 필요한 시스템툴, 리소스들, 환경설정, 환경변수 등 모든 디펜던시를 하나로 묶어서 다른 서버, 다른 pc 등 어떤 곳에도 쉽게 배포하고 안정적으로 구동할 수 있게 도와주는 툴이다. 한마디로 어플리케이션을 구동하는 데에 필요한 런타임 환경에 필요한 모든 것들을 어떤 pc 에서도 동일하게 구동할 수 있도록 도커 컨테이너 안에 담을 수 있다. 도커 - 컨테이너를 만들고, 배포하고, 구동한다. 컨테이너를 만들기 위해서는 세가지가 필요하다. 먼저 도커파일을 만들어야 한다. 어플리케이션을 구동하기 위해 꼭 필요한 파일들, 어떤 프레임워크나 라이브러리를 설치해야 하는지, 외부 디펜던시에 대해서 ..

기술 개념 2023.03.12

객체와 클래스, 쿠키와 세션, 오버로딩과 오버라이딩, 싱글톤패턴, 접근제어자

- 객체와 클래스의 차이 객체와 클래스는 객체 지향 프로그래밍(OOP)에서 중요한 개념이다. 클래스는 객체를 만들기 위한 청사진(blueprint)이라고 볼 수 있다. 즉, 객체를 만들기 위한 필드와 메서드를 정의하는 일종의 틀이라고 생각할 수 있다. 예를 들어, 자동차 클래스는 자동차 객체를 만들기 위한 필드와 메서드를 가지고 있다. 객체는 클래스의 인스턴스(instance)라고 볼 수 있다. 클래스를 바탕으로 실제로 만들어진 것이 객체이다. 예를 들어, 자동차 클래스에서 만들어진 객체는 실제 자동차이다. 객체는 클래스에서 정의한 필드와 메서드를 가지고 있으며, 필드는 객체의 상태(state)를 나타내고, 메서드는 객체의 동작(behavior)을 나타낸다. 따라서, 클래스는 객체를 만들기 위한 틀이고,..

기술 개념 2023.03.12

데이터베이스 개념

- 데이터베이스 정규화란? 데이터베이스의 정규화는 중복을 최소화하도록 설계하는 것이고, 비정규화는 읽는 시간을 최적화 하도록 설계하는 것이다. 데이터베이스를 설계할 때 최소한의 데이터 중복, 최대한의 데이터 유연성을 위해 불필요한 데이터를 제거하고 중복을 최소화하여 데이터를 구조화하는 프로세스를 정규화라고 한다. 정규화는 저장공간을 최소화 하고 데이터 구조의 안정성 및 무결성을 유지할 수 있지만, Relation의 분해로 인해 Relation 간의 연산(JOIN 연산)이 많아져서 질의에 대한 응답 시간이 느려질 수 있다는 단점이 있다. 이를 극복하기 위해 부분적으로 비정규화를 사용하기도 한다. - 비정규화는? 정규화된 엔티티, 속성, 관계를 시스템의 성능 향상 및 개발과 운영의 단순화를 위해 중복 통합,..

기술 개념 2023.03.12

문제 해결 - 부트스트랩 모달 안보임

예전에 쓰던 모달양식을 그대로 가져온건데 모달이 안보임 모달 버튼을 클릭하면 화면에 스크롤이 없어지고 다른 곳이 클릭이 되지 않는 상태여서 부트스트랩이 적용이 되긴 한 것 같은데 화면은 그대로이고 모달창이 보이지 않았다. 잘 되던 모달을 그대로 복붙해온거라 코드에는 이상이 없는 것 같음 모달의 fade 는 모달을 감추었다가 보이게 할 때 사용하는 것으로 알고있는데 지금 내 경우에는 모달이 아예 감춰진 상태라 fade 부분에서 이상해졌나? 싶어서 해결 1단계 - 모달 클래스에서 fade 를 삭제해봤다. 모달창이 뜨긴 떴다.! 근데 좀 이상하긴 함 검색을 해 보니까 이상태에서 모달을 보이게 한 방법이 있어서 그대로 따라해봤다. (출처: https://m.blog.naver.com/10hsb04/2216723..

오류 해결 2022.11.14

java.lang.ClassNotFoundException / 이클립스 clean 기능

웹사이트 홈화면도 원래 잘 동작했었고, 홈화면 소스를 건드린 곳이 없는데 갑자기 안돌아가고 코드를 자세히 뜯어봐도 틀린게 없어보이는데 아니 무엇보다 클래스가 떡하니 있는데 왜 매핑된 클래스가 없다고 뜨는거임..????? 왜????? java.lang.ClassNotFoundException 에러가 뜨면서 작동이 안되는게 이상해서 구글링을 해보다가 java.lang.ClassNotFoundException 에러가 나타날 때는 상단바에 project 메뉴에 있는 clean 을 해보면 작동이 될 수도 있다고 해서 해보았다. 그리고 다시 코드를 실행시켜보니까 ....! 잘 돌아간다. 어이없음. 역시 내가 틀린게 아니었어 project 의 clean 기능은 있는 파일들을 지우는게 아니라 이클립스가 사용하고 있던 ..

오류 해결 2022.09.20

HTTP 요청 헤더를 파싱하는 중 오류 발생 / java.lang.IllegalArgumentException / HTTP 상태 400 - 잘못된 요청

웹페이지에서 비밀번호 찾기를 누르면 나오는 모달창에서 1. 아이디와 이메일을 입력받고, 2. 입력받은 이메일로 인증코드를 보낸 다음, 3. 전송받은 인증코드를 입력하면 4. 새 비밀번호를 입력받아서 5. 비밀번호를 새로 만든다. 이때, 인증코드를 잘못 입력하면 아이디와 이메일을 입력받는 초기창으로 돌아감. 인증코드 전송까지는 잘 되는데 올바른 인증코드를 입력하면 아래 사진처럼 오류가 발생한다. (틀린 인증코드를 입력하면 정상작동됨.) 콘솔창 에러메시지 마지막 줄인 1. pwdUpdateEnd.up:1(pwdUpdateEnd.up 의 첫번째 줄에서부터 오류가 난 것) 이 부분과, 2. 인증코드를 잘못 작성했을 때는 정상작동되고, 인증코드를 올바르게 입력했을 때만 오류가 발생한다는 점 을 고려하면 인증코드를..

오류 해결 2022.09.16

JSTL(JSP Standard Tag Library) - 7. 포맷(fmt) 태그

fmt 태그는 Formatting 태그로 포맷에 관련된 태그입니다. 실행 파일 view 파일 문자열로 되어진 숫자를 누적한 결과값(자동형변환, 형변환) 나타내기 및 정수로 되어진 데이터를 세자리마다 콤마를 찍어서 나타내어주기 fmt:parseNumber 은 문자열을 숫자형식으로 형변환 시킨다. integerOnly="true" 은 소수점은 절삭해버리고 정수만 취해온다. 정수만 취해온 값을 변수 pointInt 에 넣어줌. pattern="#,###": 숫자가 #,### 형식으로 출력됨 문자열로 되어진 숫자를 누적한 결과값(자동형변환) 나타내기(JSTL을 사용한것) ${point} pointArr1 누적의 합계 : ${sum} 문자열로 되어진 숫자를 정수로 형변환하여 누적한 결과값 나타내기(JSTL을 사용..

JSP 2022.09.01

JSTL(JSP Standard Tag Library) - 6. 함수 태그(functions)

=== 함수 태그(functions) === JSTL은 EL에서 사용할 수 있는 함수 태그를 제공한다. ------------------------------------------------------------------------------------- 함수 설명 ------------------------------------------------------------------------------------- length(obj) obj가 Conllection인 경우 저장된 항목의 개수를, 문자인 경우 문자열의 길이를 반환 toUpperCase(str) str을 대문자로 변환 toLowerCase(str) str을 소문자로 변환 substring(str, idx1, idx2) str.substr..

JSP 2022.08.31