반응형

프로그래밍 215

해외에서 핫하다는 golang 입문 정리 첫번째

안녕하세요.최근 웹 개발 위주로 해가면서 많은 것들을 배워가고 있습니다.개인적으로 웹 개발을 위한 언어와 프레임웍의 선택은 단순할 수록 좋다고 생각합니다. 그리고 언어의 선택은 성능을 따져 선택하겠지만 일반적인 웹에서의 언어의 성능은 그리 크게 작용하지 않는다고 생각합니다.일반적인 성능의 지표는 for 루프겠죠. 하지만 네트워크 상에서 지연되는 시간, DB, I/O 처리가 웹 서버의 거의 전부라고 봐도 무방합니다.그런 의미에서 언어의 성능보다는 요청 처리 모델, DB의 효율적인 설계가 더 중요하다고 생각합니다.또한 웹 프레임워크가 어떤 방식으로 요청을 처리하는지에 따라서 장단점이 갈리기 때문에 웹 프레임웍의 선택도 따져봐야 하긴 합니다.이렇게 보통은 DB의 설계 또는 캐시의 올바른 설정 작업의 비동기적인..

html/css 가상요소선택자와 가상클래스선택자의 차이점

선택자라는 단어의 의미를 짚어보면 타겟이 있어야 한다는 것을 알 수 있다. id선택자, class 선택자, 태크 선택자는 각 타겟들이 요소의 속성인 id, class, tag가 된다.하지만 가상 클래스 선택자, 또는 가상요소선택자는 언뜻 이해가 안되기도 한다. 왜 가상, 요소가 붙었나..그럼 좀 더 의미를 되새겨보자.DOM에서 요소는 실체가 있는 것들이다. 그리고 클래스나 id는 출생년도나, 주민등록번호처럼 요소를 카테고리할 수 있는 속성으로 볼 수 있다. 분명 이 둘은 다른 것임을 알 수 있다.가상클래스는 이런 속성이 실제로 마크업 상에 명시되지는 않은 속성을 지칭하는 말이다. 예를들어 마우스를 올려놓았을 때나 클릭을 했을 때를 하나의 속성으로 본다는 것이다. 이런 속성들은 사용자가 만드는 행동이라 그..

css float 속성 해제 after 대한 이해

안녕하세요. float는 정말 자주 사용하는 속성입니다. float를 태그요소에 적용하면 block 속성을 없애버리는 특성을 가졌습니다. 그리고 자신의 크기만큼만 공간을 차지하며 투명인간처럼 무시되게 되는 속성입니다.이에 대한 자세한 설명은 제 블로그의 다음 글을 html css float 속성 정리 참고하시길 바랍니다.아무튼 이런 성질로 인해 다음 요소들이 딸려서 위로 올라오게 됩니다. 보통 웹 페이지의 네비게이션 바의 메뉴를 float:left 로 많이 만들어서 잘못해서 아래 요소들이 딸려올라오는 문제을 자주 겪는 것 같습니다.제 경우는 메뉴바 또는 기타 웹의 전체 구성 등을 만들 때 diplay: flex;를 사용해서 float를 자주 쓸일이 없습니다. 개인적으로 flex는 반응형 웹을 깔끔한 코드..

리액트 react setState는 비동기로 동작한다.

리액트의 가장 기본적이고 핵심적인 상태값을 변경하는 setter 함수(메소드)에 대해서 정리하고자 한다.이 setter 메소드는 클래스형 컴포넌트라면 this.setState가 빌트인 되어 있고 함수형 컴포넌트라면 직접 정의해서 사용할 수 있다.클래스 방식이나 함수형 모두 글의 맥락을 보면 동일하므로 여기에서는 클래스형 컴포넌트를 사용하여 설명한다.그러면 왜 setState는 비동기로 동작할까?리액트에서는 상태값은 아주 핵심적이고 특별하다. 어떤 상태값이 변경되면 그 영향하에 있는 컴포넌트들은 렌더링이 된다. 그리고 어떤 컴포넌트가 렌더링되면 그 하위 컴포넌트들 역시 리렌더링 된다. 이렇게 연쇄직인 방법으로 데이터의 변화가 돔 요소에 실시간으로 반영되어 우리에게 보여지는 것이다.그러면 왜 setState..

리액트에서 네이버 맵 api 서비스 사용하기 간단정리

새로운 프로젝트에 맵 서비스를 사용하게되어 간단히 정리한다.맵 서비스는 3가지(카카오, 네이버, 구글) 중 하나를 사용한다.1. 이 서비스들은 최근 사용량의 증가로 지속적으로 업데이트되어 정책도 자주 바뀌는 것 같다.2. 대량 서비스를 염두해 두지 않으면 어느 서비스를 사용해도 괜찮다 생각된다. 그러나 대량 서비스라면 구글은 제외한다. 무료 한도가 가장 적기 때문이다. 3. 얼핏 보면 카카오가 네이버 보다는 한도가 더 많은 듯 보이지만 네이버로 선택하였다. 이유는 docs를 봤을 때 어렵지 않을 것 같아서 이다.리액트 개발을 위한 패키지와 docs도 있어서 우선은 네이버 맵을 선택한다.4. 참고로 네이버 api는 최근 네이버 클라우드 플랫폼으로 이동되어 네이버 클라우트에 새롭게 가입을 하여야 한다.아마도..

클래스 컴포넌트와 함수 컴포넌트에 대한 간단한 비교 정리.

예전처럼 공들여 블로그 글을 쓰기가 귀찮다. 그래서 대략적으로만 정리하려 한다.리액트의 고전적인 클래스 컴포넌트와, 훅의 등장으로 새롭게 관심 받는 함수형 컴포넌트를 비교하기 위해 글을 쓴다. 보통 함수형 컴포넌트로 페이지를 만들지만 많은 문서와 라이브러리가 클래스형 컴포넌트를 지원한다. 따라서 이 둘을 모두 알아야할 필요가 있다.기본적으로 두 차이를 이해하려면 적어도 전통적인 함수와 클래스의 차이점을 알아야할 것이다. 우선 리액트에서 페이지를 렌더링하는 방법은 클래스의 경우 render 메소드를 사용한다. 반면에 함수형 컴포넌트는 함수 자체가 render를 담당한다고 보면 된다.둘 다 리턴 값으로 페이지의 모습을 표현하게 된다.함수형 컴포넌트function FuncComp() { return ( Hel..

성능을 위한 다양한 시도

성능(performance) 최적화는 많은 개발자들이 관심갖고 이를 위해 다양한 방법을 시도한다.성능은 구체적인 코드가 아닌 추상적인 결과물이다. 코드 + 알고리즘 + 하드웨어 + 인프라의 구성 방식 + 다양한 설정(configure) 및 환경에 따라 셀 수 없이 많은 변수가 생긴다.소프트웨어 공학자들은 알고리즘을 통해 서버 관리자는 인프라 또는 DB 모델링, 하드웨어 등을 통해서 시도할 수 있다.완벽이란 있을 수 없지만 그래도 개발자들은 지속적으로 최적화를 위해 노력한다.기본적으로 어떤 언어를 사용하느냐에 따라서도 성능의 차이가 생긴다. 웹이라면 node 서버 또는 django나 기타 다른 프레임 웍 등 다양한 선택지가 있고 성능과 개발 시간은 보통 반대로 간다고 보면된다.일반적인 수치로 성능을 비교할..

리액트에서 리덕스로 미디어 쿼리 구현하기

기록용...리액트에서 대량의 리스트 구현시 성능 최적화를 위해 react-virtualized를 사용 중 모바일과 데스크탑 화면 전환시 props로 전달할 height , width를 반응형으로 구현할 방법을 생각하다 다음과 같은 글을 찾음.https://stackoverflow.com/questions/35073669/window-resize-react-redux/35075190#35075190분명 react-virtualized 내에서 해결하는 방법이 있을 거라 짐작하지만 위 내용도 흥미로워서 기록.답변자가 제대로된 테스트를 하지는 않았으나 리덕스 스토어에 스크린 사이즈를 기록하여 상태변화시 앱의 상태를 변화시킨다는 내용.실제 스크린 사이즈가 변화될 때 직접 변화되는 상태 값에 접근하는 것이 아닌 복..

파이썬 웹크롤링의 기초(1) urllib

웹에는 정말 수많은 데이터가 존재합니다 그리고 현 시점에서는 수 많은 사람들이 웹 상에서 데이터를 뽑아내고 있죠. 마치 금광에서 금을 캐는 것 같은데 다른 점이라면 웹 상의 데이터는 고갈되지 않는 다는 점입니다. 이렇게 시간이 갈 수록 점점 많아지는 데이터는 축척될 수록 빅데이터로서 더 가치있게 되겠죠.데이터의 중요성을 알기는 하지만 어떻게 뽑아내야할지 모른다면 낭패입니다.수작업으로 하는 것은 한계가 있고 업체를 이용하자니 장기적인 플랜이라면 비용이 생각 이상으로 들 수도 있구요.이 강의는 웹크롤링 강의로 웹 크롤링을 배우고자 하시는 분들을 위한 강의며 파이썬을 이용합니다. 파이썬의 기초에 대한 강의는 인터넷 상에 많이 있으니 어렵지 않게 배우실 수 있습니다. 본인의 블로그 역시 파이썬의 기초에 대한 강..

파이썬(python) pip 명령 옵션 활용

pip install을 통해 많은 패키지를 설치해 왔을 것이다. 하지만 pip을 좀 더 활용하면 편리한 개발환경을 만들 수 있다. 보통 프로젝트가 커지면 가상환경을 많이 사용한다. (가상환경에 대한 정보가 필요하시다면 이 블로그의 387번 글을 참고하세요.)pip을 제대로 활용하면 가상환경 설정시 자신의 개발환경에 맞고 필요한 패키지를 한번에 설치할 수 있다. 버전역시 골라설치할 수 있다.이렇게 하는 이유는 다들 아시겠지만 같은 패키지라도 버전에 따른 의존관계가 변하거나 버그등의 문제가 있을 수 있기 때문이다. 따라서 프로젝트를 제대로 관리하는 첫번 째는 개발환경을 항상 동일게 유지하는 것이라 할 수 있겠다.이제부터 pip에 대한 정리를 할 것인데 유용한 정보가 되길 바란다.pip installpip i..

반응형