Blog
object-fit과 그 대체 방법
const style = document.createElement('style'); style.innerHTML = `#body img { max-width: none; } .obj-fit { margin: 0; padding: 0; list-style: none; display: flex; align-items: center; } .obj-fit img { width: 100%; height: 100%; object-fit: cover; } .obj-fit-alternat ……
dev |2020-06-28 | Comments (1)
웹서버를 엔진엑스로 교체
패쓰랑 미투데이 백업을 띄워놓은게 있는데 스태틱 페이지임에도 불구하고 이미지 등 로딩이 너무 느렸다. 그래서 어떻게 튜닝해야 하나 물어봤다가 그냥 엔진엑스 쓰라고 해서 아파치 대신 엔진엑스로 교체해 보기로 했다. 하는 김에 서버도 새로 발급해서 우분투 20.04에 소프트웨어들도 다 최신으로 깔아버렸다. 문제는 내가 돌리는 사이트들이 다 너무 오래된 것들이어서 호환성 문제가 많이 발생했다는 점이다. PHP는 깔 때 마다 mbstring을 까먹는다. MySql에는 PASSWORD()도 없어지고 PHP에는 get_magic_quotes ……
dev |2020-06-13 | Comments (0)
20140416#6
강경화 장관의 말을 빌리자면 모든 국민에게 트라우마를 안겨준 참사가 벌써 6년이 됐다. 하지만 아직 시원한 설명이나 책임지는 모습은 없다. 어제의 총선 결과가 의석수는 만족스럽지만 어딘가 계속 불만스러운 이유는 이러한 것이려나. 사회가 조금씩 나아가고는 있지만 너무 느리고 답답하다. 이제는 진실이 밝혀지기를 바란다. 페이스북에서 포스터가 예뻐서 가져왔는데 딴지 자봉단에서 만든 것 같다. 어제자 MBC 개표방송 오프닝 영상도 다분히 이런 의미가 담겨 있다.
life |2020-04-16 | Comments (0)
CSS 셀렉터 그룹
실제로 아래와 같이 제작되어 있는 것을 본 적이 있다. .stats .txt_win {float:left;width:233px;margin-top:8px;font-weight:bold;font-size:18px;line-height:30px;color:#44a3ff;text-shadow: 1px 1px rgba(1,1,1,0.3);} .stats .txt_lose {float:left;width:233px;margin-top:8px;font-weight:bold;font-size:18px;line-height:30px;color: ……
dev |2020-04-15 | Comments (0)
스크롤바 숨기기
회사 이미지 검색 솔루션 중에 비슷한 상품을 추천해 주는 기능을 카페24 앱으로 만든 것이 있다. 상품 상세 페이지에 상품 목록 형식으로 들어가는데 상당히 많은 고객이 롤링 형태로 더 많은 상품을 보여줄 수는 없느냐는 요청을 해왔다. 사실 나는 뭔가 더 보여주려면 그만큼 화면에 공간을 할애하라는 주의이지만 더이상 개똥철학 만을 주장할 수는 없는 정도가 되어서 기능 추가를 하기로 했다. 롤링이라고 하면 정해진 시간 간격에 자동으로 움직이는 형태를 말 한 것일테고 모바일 언급도 있었던 걸로 봐서 좌우 스와이프 UI도 염두에 두고 있 ……
dev |2020-02-28 | Comments (0)
2010년대를 보내고 2020년대를 맞이하며
가족이 두 명 늘고, 두 명이 줄었다. 웹표준은 이제 과거의 개념이 되었다. 그렇다고 세상이 웹표준을 제대로 받아들이지는 못했다. 역사의 반복을 목격했다. 만들어진 일을 하는 경우도 있었고 일을 만들어서 해야 하는 경우도 있었다. 전자보다는 후자의 비중이 늘어간다. 사람은 바뀌지 않는다. 하지만 사람의 영향력은 바꿀 수 있다. 이제 지병이 한 두 개씩 생긴 사람들이 나를 포함 주변에 늘어나고 있다. 건강이 최고다. 발산과 수렴이 공존했던 10년같다. 대외 보다는 대내에 더 집중하고 싶었던 10년이기도 했다. 수신(修身)에 대한 갈 ……
life |2020-01-01 | Comments (0)
반응형 그리드 레이아웃
그리드 레이아웃은 이미지 갤러리나 상품 목록 등에 사용되는 매우 자주 볼 수 있는 레이아웃이다. 보통 화면 크기에 따라 다단의 갯수가 변하고 다단의 너비는 사이의 간격은 고정 값을 가지게 된다. 구현이 CSS 만으로는 까다롭기 때문에 자바스크립트를 사용해서 많이 구현한다. 마이크로소프트에서 그리드 레이아웃을 제안한 이후로 시간도 많이 지났고 이제는 대부분의 브라우저에서 구현을 했기 때문에 까다로운 그리드 레이아웃을 CSS 그리드를 이용해서 쉽게 구현할 수 있게 되었다. 구문도 매우 간단하다. ul.grid { display: ……
dev |2019-12-25 | Comments (0)
이미지 원본 크기 naturalWidth, naturalHeight
이미지 요소의 크기는 width, height로 알 수 있다. width, height는 이미지가 실제로 로드되지 않아도 스타일로 크기가 지정되어 있으면 그 크기를 반환한다. display: none을 지정했을 때 같이 화면에 랜더되지 않으면 크기를 가져올 수 없지만 재미있는 것은 랜더가 안된 상태에서 이미지 로드가 끝나면 이미지의 원본 크기를 반환한다는 점이다. 이미지가 실제로 차지하고 있는 크기는 offsetWidth, offsetHeight로 알 수 있다. display: none으로 화면에 랜더되지 않을 때에는 이미지 로드 ……
dev |2019-07-13 | Comments (0)
Git 전역 ignore 파일
개인적으로는 전역 설정보다는 저장소마다 .gitignore를 상세히 설정하는 것을 선호한다. 그런데 지금 다니는 회사는 대부분의 어플리케이션을 파이썬으로 만들다 보니 파이썬에서 만드는 임시파일이 .gitignore에 등록되지 있지 않은 경우를 자주 볼 수 있었다. 그래서 전역 설정에 대해서 살펴봤는데 대부분 전역 설정파일을 만들고 그 파일을 사용하는 방법을 추천하고 있었다. git config --global core.excludesfile '~/.gitignore' 기본으로 참조하는 파일이 있을 것 같아서 찾아보니 Git 메뉴 ……
dev |2019-06-29 | Comments (0)
유용한 자바스크립트 배열 함수 find, includes, flat
배열을 다룰 때 특정 조건을 만족하는 바로 그 요소를 반환 받고 싶을 때가 있었는데 이때 유용한 메서드가 바로 .find()이다. .filter()는 새 배열을 반환하지만 .find()는 인자나 undefined를 반환한다. 키 밸류가 저장되어 있는 myobj 객체에서 myvalue 값에 해당하는 키를 찾고자 할 떄 아래와 같이 사용할 수 있다. const key = Object.keys(myobj).find(arr => myobj[arr] === myvalue) MDN의 .find() 메서드 설명을 보면 .findIndex() ……
dev |2019-05-23 | Comments (2)