'전체 글'에 해당되는 글 384건

  1. 2021.05.10 그리드(CSS Grid)
  2. 2021.05.07 $.data
  3. 2021.05.06 Predicate
  4. 2021.05.06 jQuery를 효율적으로 작성하는 방법
  5. 2021.04.20 좌표 2
  6. 2021.04.19 Dual 테이블이란?
  7. 2021.04.16 프로시저, 트랜잭션, 배치
  8. 2021.04.16 HRIS란?
  9. 2021.04.09 Navigator
  10. 2021.04.05 난독화

그리드(CSS Grid)

|

Grid는 html의 디자인을 담당하는 CSS의 기술중 최신기술에 속하는 방법입니다.
CSS 속성을 적용시키기 위해서는 <태그>가 반드시 필요한데, <h1>이나 <p>와 같은 태그들은 의미를 가지고있으므로 남용하면 정보가 꼬일수 있습니다.
이때 사용하는 태그가 <div>와 <span> 태그입니다. 이 둘은 아무 의미없는 무색무취의 태그로 <div>는 block level이, <span>은 inline 속성이 기본값으로 적용되어 있습니다.


Grid를 사용하기 전 선행조건으로는
1. 그리드를 사용하고자 하는 <태그>가 부모 <태그>로 묶여있어야합니다.
2. 부모 태그에 id=" "id값을 넣어줘야 합니다. (혹은 class값)
3. CSS <style> 태그에 #id값={display:grid 를 사용하고 원하는 grid 속성을 넣어주면 됩니다.

// 그리드 형태 정의
grid-template-columns: 20% 20% 20% 20% 20%  // 100을 기준으로 퍼센트, 허용단위(백분율, 픽셀, em, fr)
grid-template-columns: 50px 1fr 1fr 1fr 50px; // pixel percentage ems로 설정시 fr로 설정된 다른 열은 남은 공간에서 비율로 나뉘어짐.
grid-template-rows:  20% 20% 20% 20% 20%  // 100을 기준으로 퍼센트

grid-template: 60% 60% 60% / 200px; // 60%인 row 3개와 200px의 열을 생성 ( grid-template-rows 와 grid-template-columns 을 조합한 속성)

repeat: (3, 1fr); // 1fr 1fr 1fr // (반복횟수, 반복값) *fr(fraction;파편) : 숫자 비율대로 크기를 나눔 // 1fr 1fr 1fr : 1:1:1 비율인 3개의 column/row를 만들겠다

minmax(100px, auto): 최소한 100px, 최대는 자동으로 늘어나게 설정

auto-fill: 컬럼의 개수를 미리 정하지 않고 설정된 너비가 허용하는 한 최대한 셀을 채움(모자르면 비워둠)
auto-fit: 컬럼의 개수를 미리 정하지 않고 설정된 너비가 허용하는 한 최대한 셀을 채움(모자르면 채움)

// 그리드 형태를 자동으로 정의
// grid-template-columns(rows)의 통제를 받지 않는 것이 grid-auto-columns(rows)
grid-auto-columns
grid-auto-rows : minmax(100px, auto); // row의 갯수를 미리 알수없을때 사용

// 그리드 간격 만들기(* IE에선 사용불가)
row-gap: 10px;
column-gap: 2rem;
gap: 10px;

// 각 셀의 영역 지정
grid-column-start: 5; // 해당 컬럼에서 시작되는 column을 선택
grid-column-end: 2; // 해당 컬럼에서 종료되는 column을 선택 // start와 end는 순서가 바뀌어도 무관, 기준점이 바뀌어서 음수로 설정되도 무관
grid-column-end: span 2; // span을 이용하여 column의 넓이를 지정할 수 있음(양수만 설정 가능)
grid-column: 4 / 6; // grid 라인의 수직선 번호의 시작과 끝을 나타냄 (grid-column-start, end로 쓰기 불편하므로 이렇게 쓰는것이 더 편리)
grid-row-start:3; // 해당 행에서 시작되는 row를 선택
grid-row: 3/6; // grid 라인의 수평선 번호의 시작과 끝을 나타냄 (grid-row-start, end로 쓰기 불편하므로 이렇게 쓰는것이 더 편리)

// 영역 이름으로 그리드 정의 (* IE에서 미지원)
grid-template-areas:

             "header header header"

             "a a a "

             "footer footer footer";


grid-area: 1/2/4/6; // grid-row-start / grid-column-start / grid-row-end / grid-column-end (grid-column, grid-row 로 쓰기 불편하므로 이렇게 쓰는것이 더 편리)

// 배치순서
order: 5; // 각 아이템들의 시각적 나열 순서를 결정하는 속성, 양수,음수 모두 가능

 

// 정렬 관련 속성1
- stretch : 꽉채움
- start : 정렬방향의 시작점에 가깝게
- center : 정렬방향의 중앙에 위치하게
- end : 정렬방향의 끝점에 가깝게

// container 영역 전체에 적용(stretch/start/center/end)
- align-items : 세로 방향 정렬 
- justify-items : 가로 방향 정렬
- place-items : align-items와 justify-items 같이 쓸수 있는 속성

// 개별 item에 적용(stretch/start/center/end)
- align-self : 세로 방향 정렬
- justify-self : 가로 방향 정렬
- place-self : align-self와 justify-self 같이 쓸수 있는 속성

// 정렬 관련 속성2
- stretch : 꽉채움
- start : 정렬방향의 시작점에 가깝게
- center : 정렬방향의 중앙에 위치하게
- end : 정렬방향의 끝점에 가깝게
- space-between : 아이템 사의의 공간을 동일하게(margin쪽 여백은 없음)
- space-around : 아이템 양쪽에 같은 크기의 마진을 부여
- space-evenly : 아이템 사의의 공간을 동일하게(margin쪽 여백도 존재)

// container 영역 전체에 적용(Grid 아이템 통째로 정렬)(stretch/start/center/end/space-between/space-around/space-evenly)
- align-content : 세로 방향 정렬 
- justify-content : 가로 방향 정렬
- place-content : align-content와 justify-content 같이 쓸수 있는 속성

 

// 표준                                            IE

display: grid;                                    display: -ms-grid;
grid-template-rows                           -ms-grid-rows
grid-template-columns                      -ms-grid-columns
grid-row-start                                  -ms-grid-row
grid-column-start                             -ms-grid-column

grid-row: 1 / span 2;
에서 span 2 대신                             -ms-grid-row-span: 2 (-ms-grid-row 같이 써야함)

grid-column: 1 / span 2;
에서 span 2 대신                             -ms-grid-column-span: 2 (-ms-grid-column 같이 써야함)

align-self                                       -ms-grid-row-align
justify-self                                      -ms-grid-column-align

repeat(12, 1fr 20px)                          repeat(1fr 20px)[12]

 

grid-template, grid-template-areas, gird-area ===> 미지원....!!

'HTML & CSS' 카테고리의 다른 글

효율적인 CSS 작성법  (0) 2021.06.02
플렉스(CSS Flex)  (0) 2021.05.20
좌표  (2) 2021.04.20
부트스트랩 모달  (0) 2021.03.31
article vs. section vs. div  (0) 2020.05.06
And

$.data

|
1. 역할
	- data() 는 html 엘리먼트 내에 데이터를 저장하고 읽는 역할을 하는 함수

2. 쓰임새
	- 서버에서 조회된 데이터를 추후 ajax 통신을 하기 위한 data 저장
	- data()를 활용하여 Form의 <input> 엘리먼트의 validation 적용
		- 

3. 장점
	- html element에 data를 저장하므로 source code를 깨끗하게 유지
	- 직관적인 문법으로 쉽게 사용가능

var $span = document.createElement("span");
$($span).data("memberName", "홍길동"); // $span 엘리먼트에 {name: "홍길동"} 을 <key, value> json 형식으로 저장 , camelCase로 저장하면
<span data-member-name='홍길동'></span> // html에는 snake_case로 저장

$($span).data("memberName"); // key값이 memberName 인 value를 get
$($span).removeData("memberName"); // key값이 memberName 인 value를 삭제. 단, html에 저장된 data는 지워지지 않고, null로 바꿔줘야함.

$($span).data("member").name = "홍길동"; // <span data-member= '{"name":"홍길동"}'></span>

'JavaScript' 카테고리의 다른 글

Promise & Aysnc & Await  (0) 2021.10.18
[링크] JavaScript 번들러로 본 조선시대 붕당의 이해  (0) 2021.10.06
Predicate  (0) 2021.05.06
jQuery를 효율적으로 작성하는 방법  (0) 2021.05.06
Navigator  (0) 2021.04.09
And

Predicate

|
filter(users, function(user){return user.id === 3
})

위와 같이 함수를 작성했을때, 두번째 인자로 오는 function 을 predicate 라고 한다.
보통 함수는 일정한 로직을 거쳐 답을 내게 된다. 
안에서 사용하는 조건이나 판별식은 동일 할 수 밖에 없다.

하지만 함수형 프로그래밍 에서 predicate 를 사용한다면 이야기가 달라진다.
함수는 흐름 만을 제공할 뿐 결과를 도출해 내는 판별식은 전적으로 predicate 에게 일임한다.
이렇게 우리는 조금 유연하게 함수를 작성할 수 있고 재사용성을 높일 수 있다.

//예시 함수
function filter(arr, predicate){
  let ret = 'non';
  arr.map(v => {
    if(predicate(v)){
      ret = v;
            return;
    }
  })
  return ret;
}

출처 : ddingg.tistory.com/115

'JavaScript' 카테고리의 다른 글

[링크] JavaScript 번들러로 본 조선시대 붕당의 이해  (0) 2021.10.06
$.data  (0) 2021.05.07
jQuery를 효율적으로 작성하는 방법  (0) 2021.05.06
Navigator  (0) 2021.04.09
난독화  (0) 2021.04.05
And

jQuery를 효율적으로 작성하는 방법

|

1. DOM을 캐싱하라
	- 한번 탐색한 DOM을 다시 탐색하는 것을 비효율적이다.
	- 캐싱된 변수를 통해 요소를 탐색하라

var aa = $('#area');
aa.modal();
aa.addClass('active');

2. 명시적인 $ 식별자를 사용하자(Hungarian Notation)
	- 헝가리안 표기법 : 컴퓨터 프로그래밍에서 변수 및 함수의 이름 인자 앞에 데이터 타입을 명시하는 코딩 규칙
	- jQuery 객체를 참조한 변수 이름 앞에 $를 붙여 jQuery 를 사용 가능한 객체임을 식별하도록 하여 혼란을 감소시키자

var $area = $('#area');
var value = $area.val();

3. 문장을 연결(Chaninng)되도록 묶어서 가독성이 뛰어난 코드를 만들어라

$second
	.html(value)
	.on('click', function(){alert('hello world');})
	.fadeIn('slow')
	.animate({height:'120px'},500);

4. 코드의 양을 줄여라
	- &&, || 를 활용하자

$area = $area || $('.selector');

5. DOM 조작이 많을 경우, 분리하여 적용하자
	- 문서에 붙여진 상태에서 다수의 DOM조작은 비효율적이기 때문에 조작하고 다시 붙이는게 좋다.

var $container = $('.container'),
     $containerLi = $container.find('li),
     $element = null;
$element = $containerLi.first().detach(); // $element에 다수의 조작이 수행
// detach는 remove와 같으나 제거된 요소를 변수에 담아서 저장할 수 있다.

$container.append($element);

6. 프로젝트의 최종단계에서는 jQuery CDN을 사용하라
	- Content Delivery Network 사용시 사용자의 가장 가까운 곳에서 데이터를 가져오기 때문에 속도 향상에 도움이 된다.

'JavaScript' 카테고리의 다른 글

$.data  (0) 2021.05.07
Predicate  (0) 2021.05.06
Navigator  (0) 2021.04.09
난독화  (0) 2021.04.05
Coding Convention  (0) 2021.04.02
And

좌표

|

$(document).mousemove(function(e){
	$("body").html(e.pageX + ... );
});

 

'HTML & CSS' 카테고리의 다른 글

플렉스(CSS Flex)  (0) 2021.05.20
그리드(CSS Grid)  (0) 2021.05.10
부트스트랩 모달  (0) 2021.03.31
article vs. section vs. div  (0) 2020.05.06
box-sizing : 박스의 크기를 어떤 것을 기준으로 계산할지를 정하는 속성  (0) 2020.03.31
And

Dual 테이블이란?

|

정의
- 오라클 자체에서 제공되는 테이블
- 간단하게 함수를 이용해서 계산 결과값을 확인할 때 사용하는 테이블

용도
- 사용자가 함수(계산)를 실행할 때 임시로 사용

예시
- SELECT SYSDATE FROM DUAL;

'DATABASE(SQL)' 카테고리의 다른 글

마리아 DB 2 - RECURSIVE  (0) 2022.05.20
sequence 관련  (0) 2021.12.29
프로시저, 트랜잭션, 배치  (0) 2021.04.16
Why is ORDER BY in a FROM Subquery Ignored?  (0) 2020.10.21
MYSQL INSERT UPDATE (ON DUPLICATE KEY)  (0) 2020.08.21
And

프로시저, 트랜잭션, 배치

|


프로시저
자주 사용되는 Logic이나 여러 Application 이 공통으로 사용하는 모듈을 미리 Compile된 형태로 데이터베이스 내에 저장해놓고 필요할 때 이용하는 것.
ex) 한달간 가장 많은 매출을 올린 상품 리스트를 출력하는 프로시저

트랜잭션
Transaction 은 작업의 단위이다.
한꺼번에 모두 수행되어야 할 일련의 연산들을 의미한다.
하나의 SQL문 또는 여러 SQL문의 묶음으로 이루어져 있다.

배치
사용자와의 상호작용 없이
대량의 데이터를 처리하는
일련의 작업들을 묶어
정기적으로 반복 수행하거나
정해진 규칙에 따라 자동으로 수행하는 것

정기 배치 : 정해진 시점(주로 야간)에 실행
이벤트성 배치 : 사전에 정의해 둔 조건이 충족되면 자동으로 실행
On-Demand 배치 : 사용자의 명시적인 요구가 있을 때마다 실행

예를들어 저녁에 오늘하루 있었던 매출 데이터를 통계내고 정리하는 작업이 있을 수 있다.

트랜잭션과의 차이점 : 트랜젝션은 트랜잭션내의 모든 command가 성공적으로 끝나야 commit되지만 배치는 실행은 한꺼번에 하지만 commit은 배치내의 command별로 한다.

'DATABASE(SQL)' 카테고리의 다른 글

sequence 관련  (0) 2021.12.29
Dual 테이블이란?  (0) 2021.04.19
Why is ORDER BY in a FROM Subquery Ignored?  (0) 2020.10.21
MYSQL INSERT UPDATE (ON DUPLICATE KEY)  (0) 2020.08.21
mysql - 프로시저  (0) 2020.06.24
And

HRIS란?

|

정의
 - 인적자원정보 시스템(Human Resources Information System)
 - HR부서업무(인력, 정책, 절차 etc)를 간편하면서도 효율적으로 관리할수 있게 도와주는 단독형 S/W 또는 SaaS기반 소프트웨어

기능
 - 직원정보관리, 회사문서, 채용 및 지원서 관리, 급여관리, 연차관리, 교육 및 성과 관리

장점
 - 기업의 의사결정 효율성을 개선
 - 반복적인 HR업무 해방

벤더업체
· 아센티스(Ascentis)
· 밤부HR(BambooHR)
· 크리테리온(Criterion)
· 코어HR(CoreHR)
· 데이포스(Dayforce)
· 에피코르(Epicor)
· 인포 클라우드스위트 HCM(Infor CloudeSuite HCM)
· 크로노스 워크포스(Kronos Workforce)
· 오라클 HCM 클라우드(Oracle HCM Cloud)
· SAP 석세스팩터(SAP SuccessFactors)
· 얼티밋 소프트웨어 얼티프로(Ultimate Software UltiPro)
· 워크데이(Workday)

'etc' 카테고리의 다른 글

마이그레이션  (0) 2021.07.06
스프린트, 스크럼, 애자일  (0) 2021.07.05
이런 사람과 일하고 싶어요  (0) 2020.12.14
매월 첫째주 기준 구분 방법  (2) 2020.12.03
About 코딩 학습 방식  (0) 2020.10.29
And

Navigator

|
// 사용예제
if (navigator.userAgent.toLowerCase().indexOf("chrome") !== -1 ) {
	...
    비즈니스 로직
    ..
}	

navigator 객체는 브라우저 공급자 및 버전 정보 등을 포함한 브라우저에 대한 다양한 정보를 저장하는 객체

 

navigator.userAgent // Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36
navigator.appName // Netscape
navigator.appCodeName // Mozilla 

익스플로러 11 버전, 크롬, 파이어폭스와 사파리는 모두 브라우저의 이름을 "Netscape"로 사용

익스플로러 10 이하 버전, 크롬, 파이어폭스, 사파리와 오페라 모두 브라우저 코드명을 "Mozilla"로 사용

 

// IE 브라우저 체크
var agent = navigator.userAgent.toLowerCase();
var res = false;

res = ((/trident/i).test(agent) || (/msie/i).test(agent));

return res;

 IE6.0 = null
 IE7.0 = null
 IE8.0 = Trident/4.0
 IE9.0 = Trident/5.0
IE10.0 = Trident/6.0

null 과 trident 둘다 체크를 위해 위와 같이 정규식 test를 사용하여 처리한다.

'JavaScript' 카테고리의 다른 글

Predicate  (0) 2021.05.06
jQuery를 효율적으로 작성하는 방법  (0) 2021.05.06
난독화  (0) 2021.04.05
Coding Convention  (0) 2021.04.02
성능 향상을 위한 자바스크립트 코딩 패턴  (0) 2020.10.29
And

난독화

|

1. Split 기법

 

문자열을 다수의 string 변수에 잘게 나눈 후 마지막에 재조합하는 방식

var a = "<h";
var b = "</h";
var c = "M";
var d = "1>";
var e = "AT";
var f = "1>";
var g = "AD";
var h = "H";

document.write(a + f + c + g + h + e + b + d); 

2. escape()/ unescape()

 

escape 함수는 ASCII 형태의 문자열을 ISO Latin-1 형태로 변환해 주는 함수(문자열을 encode)

unescape 함수는 그와 반대로 반환(문자열을 decode; escaping된 문자열을 정상적인 문자로 치환)

알파벳과 숫자, *, @, -, _, +, / 를 제외한 특수문자만 해당

document.write(escape("MADHAT!@#$%^&*"));
document.write(" ");
document.write(unescape("MADHAT%21@%23%24%25%5E%26*"));

3. eval

 

문자열을 코드로 인식하게 해주는 함수

var a = "document.write('\x4d\x41\x44\x48\x41\x54')";

eval(a);

// \ddd : 2개의 8진수(ddd)로 지정된 Latin-1 문자

 

4. Hexademical / Decimal

Hexademical 은 16진수를 Decimal은 10진수를 의미.

어떤 문자열이 있을때, 이를 알아보기 어렵게 16진수 혹은 10진수 값으로 바꾸어 입력.

이때, String.fromCharCode 혹은 String.charCodeAt 함수를 사용

String.fromCharCode은 숫자 -> 문자로 변환하는 함수.

String.charCodeAt은 특정 위치의 문자를 아스키코드의 숫자로 변환하는 함수.

Mazilla나 JSDEtox와 같은 툴로 바로 풀리는 난독화임.

Hexademical의 경우 주로 나오는 난독화의 형시은 %(숫자)나 \x(숫자)

\x(숫자)는 %로 치환 후 분석.

document.write('\x4d\x41\x44\x48\x41\x54\x20');
document.write(String.fromCharCode(0x4d,0x41,0x44,0x48,0x41,0x54,0x20));
document.write(String.fromCharCode(77,65,68,72,65,84,32));

document.write(String.fromCharCode("LADHAT".charCodeAt(0) + 1));

5. XOR 기법

XOR 암/복호화 방식 : 평문 ^ KEY = 암호문 // 암호문 ^ KEY = 평문

XOR 연산의 성질

 교환법칙 : A ^ B = B ^ A

 결합법칙 : (A ^ B) ^ C = A ^ (B ^ C)

 항등원 : A ^ 0 = A

 역원 : A ^ A = 0

document.write(String.fromCharCode(92 ^ 17, 80 ^ 17, 85 ^ 17, 89 ^ 17, 80 ^ 17, 69 ^ 17));

 

 

'JavaScript' 카테고리의 다른 글

jQuery를 효율적으로 작성하는 방법  (0) 2021.05.06
Navigator  (0) 2021.04.09
Coding Convention  (0) 2021.04.02
성능 향상을 위한 자바스크립트 코딩 패턴  (0) 2020.10.29
favicon.ico 404 Not found 에러  (0) 2020.08.25
And