본문 바로가기

반응형
전체 글
반응형
413

웹서버(WEB)와 웹애플리케이션서버(WAS) 차이!! 안녕하세요. 웹서버(WEB)와 웹애플리케이션서버(WAS) 차이에 대해 이야기해보겠습니다. 웹서버 (Web Server) 웹서버는 HTTP 기반으로 동작합니다. 정적 리소스와 기타 부가기능을 제공합니다. (정적(파일) HTML, CSS, JS, 이미지, 영상 등) 서버는 NGINX와 APACHE를 주로 사용합니다. 웹 애플리케이션 서버(WAS - Web Application Server) (Application의 뜻은 응용프로그램(로직)입니다.) HTTP 기반으로 동작합니다. 웹 서버 기능에 정적 리소스 포함하여 제공 가능합니다. (가장 핵심입니다.) 프로그램 코드를 실행해서 애플리케이션 로직 수행합니다. 동적 HTML, HTTP API(JSON)를 사용합니다. 서블릿, JSP, 스프링 MVC를 사용할 수.. 2022. 1. 5.
[JAVA] String날짜 형태 비교 방법!! (compareTo 사용법) 안녕하세요. 오늘은 간단히 자바에서 string형태의 날짜 형식을 비교하는 방법에 대해 설명해보겠습니다. 자바에서 데이터 형식에서 연산식(ex: =, )을 사용하기도 하고, 또한 메서드를 활용하는 방식 두가지가 존재합니다. 메서드 활용 방식은 compareTo 메서드를 사용할 예정이며, 비교 연산 방법은 Date상태에서의 getTime 메서드를 활용하는이야기해보겠습니다. 1. compareTo Method 2. Date 연산 방법 1. compareTo Method 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 //오늘날짜 yyyy-MM-dd로 생성 String todayfm = new SimpleDateFormat("yyyy-MM-dd").for.. 2021. 12. 27.
Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for operation '=' 2가지 해결방법 안녕하세요. 어김없이 에러 포스팅을 쓰고 있군요...ㅜㅜ 저 같은 경우, 개발 환경에서 로컬 디비로 우선 연결하여 개발을 진행하려하는데 아래와 같은 에러가 나타났습니다. Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for operation '=' 처음보는 에러에다가 부등호도 보이고...짜증나더군요 ㅡㅡ 여러 경로로 확인해봤더니 COLLATION, 즉 특정 캐릭터셋으로 작성된 문자열을 비교하다가 발생하는 에러입니다. 전 아래 에러와 같이 utf8_general_ci 와 utf8_unicode_ci의 충돌로 인해 발생된 것 같습니다. 이 현상을 해결하기 위한 두가지 방법을 소개하려 합니다. 1. 데이터베.. 2021. 12. 21.
Apache Log4j 보안이슈 대응에 대한 문의 아래는 전자정부프레임워크 홈페이지에서의 Apache Log4j 보안이슈 대응에 대한 문의입니다. 아래글을 잘 모르시는 분들이 많아서 좀 많은 분들에게 알리기 위해 포스팅하였습니다. 계속해서 버전이 업데이트되고 있으니 전자전부 프레임워크홈페이지와 메이븐리포지토리 사이트에 수시로 방문하셔서 확인 바라겠습니다! (글 하단에 홈페이지 링크가 있습니다.) 1. Log4 jdbc v1.2를 적용하고 있는데 이런경우는 보안패치 해당사항이 없는건가요? 보안패치 대상은 Log4 jdbc가 아닌 Log4j-core입니다. 다음 2번을 참고하여 대상인지 필히 확인을 하셔야 합니다. 2. Log4j2 패치를 해야하는 대상인지 잘 모르겠어요. * 개발환경에서 확인 이클립스 개발환경에서는 pom.xml파일을 오픈한후 Depend.. 2021. 12. 21.
JMSAppender 사용여부 확인 방법!! (+2.x 버전 조치사항 방법!!) 2021년 12월 17일 Apache Log4j 취약점 보안조치사항입니다. 이번 조치사항의 특이사항은 1.2 버전에서 JMSAppender 사용하는 소프트웨어를 조치사항으로 포함했다는점입니다. JMSAppender를 사용하지 않으면 취약점에 영향이 없다고하네요. (ConsoleAppender를 사용할 경우입니다.) 이번 포스팅에서는 JMSAppender사용여부확인방법과 2.x대 업데이트 불가시에 조치사항을 다뤄봤습니다. JMSAppender 사용 여부 확인 방법 JMSAppender의 사용여부는 log4j의 설정파일에서 사용여부를 확인하면 됩니다. 아래의 log4j 설정파일에서 JMSAppender가 없으면 사용을 안하는거라 보시면 됩니다! log4j.properties logger.xml logging.. 2021. 12. 21.
[MYSQL] 계정 및 권한 생성 방법!! 오늘은 SQL 계정 및 권한 생성하는 방법에 대해 확인해보겠습니다. 프로젝트에 들어가기 전에 개발환경에서 가장 기초적인 부분이죠! 정리해보겠습니다. 우선 mysql 접속에 접속합니다. 계정정보를 생성하기 위해 MYSQL로 접속을 합니다. 명령어 use '데이터베이스이름' 예) use mysql show tables로 테이블을 조회한 하면, 계정을 관리하는 테이블인 user를 확인할 수 있습니다. 계정을 만들어줍니다. 계정 명령어입니다. 명령어 create user '계정아이디'@localhost identified by '비밀번호'; 예)create user 'ikpca'@localhost identified by 'hello'; 그럼 이상이 없을 경우 ok 문구가 뜨게 됩니다. 참고로 localhost.. 2021. 12. 20.
[JAVA] 객체지향 특징 및 Solid 원칙 정리!! 안녕하세요. 오늘은 자바의 객체 지향의 특징과 더불어 좋은 객체 지향 설계를 위한 5가지 원칙인 solid에 대해 정리해보겠습니다. 객체 지향의 특징 : 추상화 : 실제 세상을 객체화하는게 아니라 필요한 정보만을 중심으로 간소화하는 것을 의미합니다. 캡슐화 : 객체에 필요한 데이터나 기능(메서드)을 책임이 있는 객체에 그룹화 시켜줍니다. 상속 : 상위 클래스의 기능을 하위 클래스가 사용할 수 있는 것입니다. (중복되는 코드 재사용) 다형성 : 객체간 관계를 유연하게 해주는 특징입니다. 자바에서 가장 중요한 부분은 다형성입니다. 다형성은 역할과 구현으로 나뉩니다. (유연해지며 변경도 편리합니다.) 역할 : 인터페이스 구현 : 구현객체(impl) 다형성의 본질 : 클라이언트를 변경하지 않고, 서버의 구현 기.. 2021. 12. 8.
[Spring] 스프링 컨테이너 개념 및 동작 원리(DI,IoC,ApplicationContext 개념) 여기서는 스프링 컨테이너의 개념 정리와 DI 및 IoC, 스프링 컨테이너의 동작 원리에 대해 설명하고 있습니다. 정리하는 겸, 정보공유하는 겸으로 포스팅하고 있으니 도움이 되셨으면 좋겠습니다~~~ DI(Dependency Injection) : 의존관계, 의존성 주입 스프링은 DI로 다형성 + OCP, DIP를 가능하게 지원 (DI 컨테이너 제공) - 클라이언트 코드의 변경 없이 기능 확장 - 쉽게 부품을 교체하듯이 개발 애플리케이션 실행 시점에 실제 생선된 객체 인스턴스의 참조가 연결되는 것을 의존관계 주입이라고 합니다. - 의존관계 주입을 사용하면 클라이언트 코드를 변경하지 않고, 클라이언트가 호출하는 대상의 인스턴스를 변경할 수 있습니다. - 의존관계 주입을 사용하면 정적인 클래스 의존관계를 변경하.. 2021. 12. 8.
[jQuery] onkeyup을 통한 실시간 Replace방법! (숫자만/특정문자만/영상有) 안녕하세요. 오늘은 onkeyup을 통해 숫자만 또는 특정 문자만 입력하여 실시간으로 유효성 검사할 수 있는, Replace방법에 대해 알아보겠습니다. 영상을 준비했으니 영상을 보시죠~~~ 참고로 onkeyup은 사용자가 키보드의 키를 눌렀다가 땠을때 발생하는 이벤트입니다! 단위수는 오로지 숫자만 감지할 수 있도록 설정하였으며, 성취도는 A,B,C만 입력될 수 있도록 설정하였습니다. 숫자 replace 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 function checkNum(objEv){ var numPattern = /([^0-9])/; var v = objEv.value; numPattern = v.match(numPattern).. 2021. 12. 8.