목록IT (123)
번개애비의 라이프스톼일
배송트래킹을 직접 구현할지 모르겠지만, 혹시 몰라서 남겨놓음. 제일 편한방법은 스마트택배 API를 연동하는게 현실적이긴함. API 전문 : http://info.sweettracker.co.kr/apidoc/ 우체국 https://service.epost.go.kr/trace.RetrieveDomRigiTraceList.comm?sid1={#운송장번호}&displayHeader=N CJ대한통운 http://nexs.cjgls.com/web/info.jsp?slipno={#운송장번호} 한진택배 https://www.hanjin.com/kor/CMS/DeliveryMgr/WaybillResult.do?mCode=MN038&schLang=KR&wblnumText2={#운송장번호} 롯데택배 https://www..
신용카드 카드 입력창 신용카드를 입력받을때 좀더 인터렉티브하게 받을 수 있습니다. CVV번호를 입력할때는 카드의 뒷면으로 넘어간다. https://codepen.io/CodeWorks4U/pen/NWBMxPM NWBMxPM ... codepen.io 슬라이더 앞글자를 이용하여 좀더 다이나믹한 슬라이더를 만들수 있다. https://codepen.io/CodeWorks4U/pen/poZBYqL CodeWorks4U Parallax Drag ... codepen.io 시간에 따라 바뀌는 배경색 배경색상이 5초간격으로 스무스하게 변경된다. body{ animation:changeBG 5s infinite; alternate linear; } @keyframes changeBG{ 0%{ background:#e..
이전에 특정좌표가 폴리곤영역내에 존재하는지 확인하는 Point-in-Polygon 알고리즘을 활용하여 해결했는데, 이번에는 폴리곤과 폴리곤을 비교하여 서로 겹쳐졌는지 확인하는 기능을 개발하였다. 폴리곤 좌표와 검색할 좌표를 비교하여 해당 좌표가 폴리곤안에 들어와있는지 확인하는 PHP함수 섹터를 나누는 기능을 개발하기 위해서는 섹터의 영역인 폴리곤과 좌표계를 비교하는 개발소요가 있었다. 예를 들면 이것 처럼.... 기본적으로 Tmap이나 Naver Map에서는 설정한 폴리곤영역에서 사 www.burndogfather.com (하루가 멀다고 자꾸자꾸 새롭게 개발할게 마구마구 튀어나오고 있는중임) 테스트를 위해 여러개의 폴리곤 좌표계를 활용하였다. 비교 대상이 되는 기본 폴리곤 하나와 기본 폴리곤과 동일한 폴..
섹터를 나누는 기능을 개발하기 위해서는 섹터의 영역인 폴리곤과 좌표계를 비교하는 개발소요가 있었다. 예를 들면 이것 처럼.... 기본적으로 Tmap이나 Naver Map에서는 설정한 폴리곤영역에서 사전에 맵에 띄워둔 마커가 폴리곤에 포함되어있는지 확인하는 API가 존재했지만,이 과정은 언제까지나 매번 API를 통해 호출해야되는 부담이 있었고, 마커가 수천개가 되는 상황에서는 조금더 섹시한 방법을 찾기로 했다. 방법은 크게 두가지가 있었다. 1. 데이터베이스를 활용하는 방법 MySQL에 Polygon형태의 데이터를 저장해두고 MBRContains 연산자를 이용하여 SELECT를 쿼리하는 방법이다. 2. 데이터베이스를 활용하지 않는 방법 데이터베이스의 좌표계를 불러온뒤, 자료구조로 만들어두고 애플리케이션(P..
CentOS 7.x 를 설치하고 ping 8.8.8.8을 실행하니 ping이 안찍힌다. ifconfig를 해보면 Loop back IP가 나오는것을 봐선 네트워크 연결이 잘못됬거나 이더넷 어댑터가 로드되지 않은것이 분명함. sudo lshw -C network 이 명령어를 입력하여 현재 시스템의 이더넷 랜카드의 칩셋정보를 확인한다. 확인한결과 intel I219-V 칩셋이었다. 아래 압축파일을 다운로드 받아 별도로 USB에 담아서 설치했음. cd /tmp mkdir /tmp/usb //USB장치정보를 확인하고 마운트한다. fdisk -l //마운트 mount -t vfat /dev/sdb1 /tmp/usb 이 명령어는 USB를 시스템에 연결하고 USB를 마운트하는 명령어이다. cd /tmp/usb tar..
웹서비스를 통해 제공되는 ERP화면이나 관리자패널등에서는 하나의 화면에 굉장히 다양한 정보를 제공해야되고, 다양한 데이터수정이 이뤄진다. 다음과 같은 예시.... (출처 : [팔피엠 웹ERP/MES] https://blog.8pmbiz.com/33) 하나의 화면에서 다양한 정보를 수정하기 도울수 있는 웹 라이브러리를 소개한다. 검색이 가능한 multiple Select 라이브러리 단일선택을 위한 Select뿐만 아니라 다중선택이 지원되는 Multiple을 지원하고, 대량의 데이터를 Select를 통해 지원하기 위해 페이징방식의 Select를 지원해주는 라이브러리이다. 주요특징으로는 태그만으로 이용 검색기능 지원 무한스크롤방식의 페이징 지원 호출-응답 커스텀 가능 사용자 선택에 따른 콜백 작성가능 사전선택..
로컬에서 git을 사용하고 있는데 굉장히 귀찮은 일이 많아서 개발서버에서 파일저장 시 github으로 자동 커밋하는 기능을 만들었고, 이 기능을 공유한다. 컴포넌트화된 라이브러리들을 중간중간 Public git으로 커밋해주고, CDN을 통해 메인프레임웤에 연동하는 개발위주로 진행하고 있다. AS-IS 단위기능수정 -> 컴포넌트 수정사항발생 -> 로컬에서 개발 및 테스트 -> git커밋 -> CDN으로 실서버에 배포 컴포넌트 수정사항은 사실 잦은 일은 아니였지만, 매번 로컬에서 개발하고 테스트하고 git에 배포하고 CDN으로 실서버에 배포하는 과정자체가 굉장히 수고스러웠다. 무엇보다 로컬환경에서 개발과 테스트했을때와 실서버에서 배포되었을때와의 환경차이(?)로 인해 어려움이 많았고, 이러한 환경차이를 최소화..
PHP8 이 새롭게 나오면서 JIT이라는 개념으로 기존 PHP 7 대비 성능이 크게 향상되었다고 주장했었으나, 사실, 큰 성능 향상을 기대하기 힘들었다. (슬그머니 올려두었던 나머지 발 마저도 떼야되나...) 프레임워크에 동일한 성능의 클라우드에 PHP 8.1 과 PHP 8 을 올려두고 여러번 테스트했지만, 사실 상 유의미한 성능변화폭이 없는것도 사실이다. (기대말라... 💩) 그리고, JIT을 Opcache와 활성화해두면 컴파일 캐싱을 위해 가끔 엄청나게 속도가 느려지는 현상이 발생되는 문제점도 존재함. (참고로 서버셋팅이 잘못될리 없음 ㅋㅋ) (PHP JIT이 드디어 나왔다고 환호했던 예전의 나를 반성하게 만들어버림....) 작년에 PHP 8.1 이 새롭게 나오면서 새로운 기능을 이것 저것 맛보고 있..
이번에 회사에서 신입개발자(1년미만)를 채용하게 되었다. 내가 경험한 것처럼 다른 회사의 파트장이나 팀을 이끄는 리더에게 조금이나마 도움이 됬으면 하는 바램에 경험내용과 코딩테스트 문제를 공유하게 되었다. 이전까지는 면접과 배경지식과 관련된 간단한 문제만으로 개발자를 뽑았었는데, 그 결과 조금만 로직이 복잡해지면 굉장히 힘들게 일을 하는 경우가 많았고 그 빈도가 점차 증가하면서 주니어개발자 그 자신에 대한 자존감이 크게 하락하는 경우를 경험하게 되었다. 그 친구만의 문제라고 단정짓지 않고 Recruit 프로세스부터 OJT, Todo 관리, Capa 측정등 회사 내 개발조직의 모든 프로세스를 점검하면서 되돌아본 계기가 되었다. 최근 개발자 몸 값이 크게 뛰면서 많은 사람들이 직업학교등을 통해 개발에 입문하..
SPA란? Single Page Application의 약자로써 쉽게 이야기하자면 페이지이동이 이뤄지지 않는 웹서비스를 말한다. 단순히 1페이지로 구성되는 서비스가 아니라 실제 메뉴/페이지 이동도 가능하도록 구현시킬 수 있다. SPA 서비스들은 최초 브라우저에서 페이지 로드이후 새로고침이 이뤄지지 않기 때문에 사용자로 하여금 페이지 전환이 빠른것처럼(?) 느끼게 해줄 수 있다. 위 사진에서는 Ajax로 구현되어 있지만 최근에는 React로 손쉽게 구현할 수 있으며, 조금더 낮은 단계로 내려가면 Fetch, axios로 구현할 수도 있다. (심지어 Websocket으로 구현한 경우도 있음) 최근에는 Android, iOS등 멀티플랫폼에 대응하기 어려운 환경에서 SPA기반으로 웹뷰로 서비스하는 목적으로도 ..