목록분류 전체보기 (186)
hmk run dev
초기 로딩 속도가 느린 대신 프런트에서 직접 라우팅 처리 - 서버 부하 줄임 페이지 전환 빠름 & 화면 깜빡임 - 사용자 경험 개선 컴포넌트를 이용한 코드 재사용성(요즘은 웹 컴포넌트도 많이 사용하지만..) 등등... 많은 장점을 가지고 있는 SPA 애플리케이션이지만 검색 SEO, 초기 로딩 속도 등의 단점을 커버할 수 있는 프레임워크가 있다. 흔히 알고 있는 NEXT.js , NUXT.js 등의 프레임워크의 동작원리와 코드 스플리팅 & 번들의 원리에 대해서 알아보고자 하는 포스팅입니다.. 작동원리 1. 초기 사용자가 사이트에 접속 요청 > SSR방식으로 렌더링 되는 HTML 보냄 - 초기 로딩 속도 & 검색 SEO 단점 커버 2. 브라우저에서 Javascript는 spa 애플리케이션에 필요한 것들을 다..
jsoup으로 네이버 블로그를 크롤링 하려다가 아래처럼 iframe 태그로 되어있었다... 셀네니움 등.. 별 방법을 다 찾아 봤지만 방법은 의외로 간단했다.. iframe 태그 안에 src 부분을 보면 블로그의 실제 주소가 있는데 이걸 이용해 페이지를 크롤링하면 된다! 앞에 "
OOP란 Object-Oriented Programming 의 줄임말 객체지향과 대비되는 말로 절차지향이 있다 절차지향 프로그래밍은 프로그램을 함수단위로 쪼개 큰 문제를 작은 단위들로 나누어 해결하는 방식으로 top-down 방식이라고도 한다. 프로그램을 설계할떄 객체지향 보다 비교적 적은시간이 들긴하지만 필요한 데이터가 여기저기 분산되어 있고 프로그램에 변화를 주었을때 여기저기서 문제가 발생할 수 있는 문제점 등이 있다. 객체지향은 큰 문제를 작게 나누는 것이 아닌 작은 문제들을 해결하는 객체들을 만들어 객체끼리 서로 소통하면서 큰문제를 해결하는 bottom-up 방식이라고 할 수 있다. 설계시 비교적 시간이 오래걸리지만 코드의 재사용성, 유지보수의 용이, 간결한 코드 등 많은 장점을 가지고 있는 프로..
다이나믹하게 쿼리를 짜보고 싶어서 XML 파일이아닌 인터페이스에 변수로 쿼리를 등록해놓고 사용해보고 싶었다. 우선 context-application.xml 에 spring bean으로 등록 해야 스프링에서 빈 주입을 해준다! // mapper 인터페이스를 만든 경로 interface등록 @Mapper public interface BizMsgMapper { String QueryStr = "SELECT table_name\r\n" + "FROM information_schema.tables \r\n" + "WHERE table_type = 'BASE TABLE'\r\n" + "AND table_schema='workerman_dev2' and table_name like '%BIZ_LOG%'"; @Se..
FUNCTION - 자신을 호출한 곳으로 반드시 하나의 값을 리턴해 줘야되는 PL/SQL Stored Program이다. - Stored Function or User Function or User-Defined Function 이라고 한다. - 자신의 스키마 계정에 함수를 작정하려면 CREATE PROCEDURE 시스템 권한 필요 - Header에 리턴되는 데이터 타입을 기입 Header 끝에는 IS[AS]가 와야하고 IS[AS]와 Begin사이에 Begin~End에서 사용할 변수를 선언한다. 기본 형식 ex) CREATE [OR REPLACE] FUNCTION function_name[parameter] RETURN 리턴 데이터타입 IS[/AS] Declaration_section // BEGIN 과..
char사용을 지양하고 varchar를 이용하라는 이야기를 들었다. 고정길이로 설정해도 괜찮을 것 까지 모두 varchar로 설정하라는데 의구심이 들어 char와 varchar의 차이점에 대해 좀 더 심도 있게 알아보고자 한다. CHAR 고정길이 문자열 타입으로 만약 타입의 크기만큼의 데이터가 들어오지 않은경우 이후의 공간을 스페이스로 채워넣습니다. 고정길이 문자열이기 때문에 헤더에는 레코드의 길이에 대한 정보가 들어있지 않습니다. . VARCHAR 가변길이 문자열 타입으로 타입의 크기만큼의 데이터가 들어오지 않더라도 이후의 공간을 스페이스로 채워넣지 않습니다. 가변길이 문자열이기 때문에 헤더에는 레코드의 길이에 대한 정보가 포함되어야 합니다. CHAR(5) & VARCHAR(5) 데이터가 들어오는 경우..
데이터베이스를 구축하다보면 텍스트 데이터(Text Data)를 취급해야 할 때가 있다. 이때 반드시 고민해야 하는 것이 있는데, 바로 문자셋(character set)을 선택하는 것이다. 실생활의 대부분의 데이터는 텍스트기반(text-centric)이다. 당연히 실생활의 모든 텍스트 데이터를 저장할 수 있는 자료형이 필요로 하게 되었다. 이것을 위해서 나온 charset이 UTF-8 이다. UTF-8 문자 집합은 1~4 바이트까지 저장이 가능하게 설계되었다. (알파벳 1byte, 한글 3byte) MySQL/MariaDB 에서도 UTF-8 을 지원한다. 이때! 간과한 사실이 있는데, 전세계 모든 언어가 21bit (3바이트가 조금 안됨)에 저장되기 때문에 MYSQL 에서 utf8 을 3바이트 가변 자료형..
CHAR & VARCHAR & TEXT CHAR : 고정 길이 문자열 정보 - s는 기본 길이 1바이트, 최대 길이 Oracle 2000바이트 SQL Server 8000바이트 - s만큼 최대 길이를 갖고 고정 길이를 가지고 있으므로 할당도니 변수 값의 길이가 s보다 작을 경우에는 그 차이 길이만큼 공간으로 채워진다. (남는 공간은 공백으로 채우게 된다.) VARCHAR : CHARACTER VARYING의 약자로 가변 길이 문자열 정보 ( 데이터 길이 상한치 4000 ) (Oracle은 VARCHAR2 로 표현, SQL Server는 VARCHAR로 표현) - s는 최소 길이 1바이트, 최대 길이 Oracle 4000바이트, SQL Server 8000 바이트 - s만큼의 최대 길이를 갖지만 가변 길이..
카테고리명 가져오기 ex) 부모1 > 부모2 > 자식1 CREATE DEFINER=`workerman`@`%` FUNCTION `F_GET_CATEGORY_NEW_NAME`(idx bigint) RETURNS varchar(500) CHARSET utf8 READS SQL DATA BEGIN DECLARE _id bigint; DECLARE _p_category_no bigint; DECLARE _category_name varchar(500); DECLARE _name varchar(20); SET _id = idx; set _category_name = ''; IF _id IS NULL THEN RETURN NULL; END IF; IF _id = 0 THEN RETURN '0'; END IF; LO..
제네릭은 클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 기법 class Person{ public T info; } public class GenericDemo { public static void main(String[] args){ Person p1 = new Person(); // p1 & info의 데이터 타입은 string이 된다 Person p2 = new Person(); } } 사용하는 이유 아래 코드는 보면 StudentPerson 과 EmployeePerson 은 똑같은 기능을 가지고 있다.. 두 개를 대표할 수 있는 클래스를 만들수 있게 해주는 것이 generic class StudentInfo{ public int grade; StudentInfo(int grade){thi..