반응형 IT/Knowledge272 lifeCycle ? 안드로이드에서 life cycle 즉 생명 주기에 대한 이해는 중요한 부분이다. 메모리에 상주되면서 부터 사라지기 까지를 이 생명주기라고 한다. 먼저 사진을 보면 이해하기가 쉬울듯 싶다. 크게 흐름을 보면 액티비티가 시작이 되고 종료 되기까지의 계속해서 알고리즘이 돌게 되는데 그안에 있는 메서드를 하나씩 보도록 하면 onCreate() 액티비티가 생성될 때 호출되며 사용자 인터페이스 초기화에 사용됨. onStart() onRestart() 액티비티가 멈췄다가 다시 시작되기 바로 전에 호출됨. onStart() onResume() 액티비티가 사용자와 상호작용하기 바로 전에 호출됨. onPause() onPause() 다른 액티비티가 보여질 때 호출됨. 데이터 저장, 스레드 중지 등의 처리를 하기에 적당한 .. 2022. 5. 7. 로드밸런싱 (Load balancing) 종류 / 알고리즘 / L4장비 먼저 로드밸런싱이란? 트래픽을 분산시켜주는 컴퓨터 네트워크 기법 이고 좀더 정확한 설명은 둘, 셋 이상의 중앙처리 장치 혹은 저장장치와 같은 컴퓨터 자원들에게 작업을 나누는 것을 의미 그러면서 다양한 종류와 알고리즘이 있다. 로드밸런싱을 접해볼수 있을 기회는 다양하지만 가장 많이 접하게 되는곳이 아마 AWS라고 생각이 든다. 일단 OSI 7계층에서 L4 단계에는 전송 계층(transaction)이 있고, L7 계층은 응용 계층(application)이 있다. 대표적으로 L4 에서 IP 주소와 포트번호 부하 분산이 가능하고 L7에서 URL, HTTP헤더에서 부하 분산이 가능하다. L4에서의 로드밸런싱은 네트워크 로드밸런싱이고 다음과 같은 특징이 있다. Client IP와 서버사이에 서버로 들어오는 트래픽은.. 2022. 5. 6. websocket과 Rest의 차이점 이번 포스팅에서는 Rest와 Websocket의 차이를 알아볼 것이다. Rest에 대해서는 아래 참고 포스팅을 참고하길 바란다. 둘의 가장 큰 차이는 접속을 유지하는지의 여부이다. websocket은 상태를 저장하여 클라이언트가 소켓연결을 요청했을때, 어떤 이벤트가 발생 했을때의 상태를 점검하여 그 상태를 저장한다. 사진으로 보면 이해가 될것이다. 클라이언트는 서버에 요청을 하며 handshake를 하고 그 뒤로 연결이 되어있는 상태에서 계속해서 통신을 한다. 그에 반해 REST는 상태값을 저장하지 않는다. request가 들어오면 들어올때마다 response를 배출해줄뿐 websocket처럼 유지를 하지 않는다. 그리하여 websocket의 장점은 다음과 같다. 순수 웹 환경에서 실시간 (양방향) 통신.. 2022. 5. 5. 3 way handshake 시작하기 앞서 간단하게 네트워크에 대해서 얘기를 해보고 넘어가보면 네트워크란 데이터를 교환하기 위해 전송 매체를 매개로 서로 연결되어 있는 것이고, 인터넷은 전세계 컴퓨터들이 서로 연결되어있는 거대한 네트워크를 의미한다. 사람간의 대화에서 같은 언어를 이용해서 의사소통을 하듯이 네트워크 상에서 데이터를 주고 받기 위해서는 일종에 정해진 규약이 있는데 이것을 프로토콜 이라고 한다. 데이터를 전달하기 위해서는 OSI 7 계층에서 전송계층을 사용하여 TCP, UDP 통신을 하는데 이에 대한 내용은 아래 참고 포스팅을 참고하도록 하자. 이제 여기서 TCP에서의 연결 지향적인 특성을 갖게 해주는 과정이 바로 이 포스팅의 주제인 3Way - handshake 방식이다. 간단하게 비유를 하면 두명이 서로 무전기로 대.. 2022. 5. 3. TCP / UDP 이번 포스팅에서는 네트워크의 계층 중에서 전송 계층에서 사용하는 TCP 와 UDP에 대해서 작성을 해볼것이다. 간단히 요약을 하면 데이터를 보내기 위해 사용하는 프로토콜이다. 하지만 둘의 차이는 TCP 연결 지향 가상회선방식 사용 높은 신뢰성 흐름제어 및 혼잡제어기능 3way handshaking UDP 보다 느리다. streaming 불리하다. ptp 방식 서버와 클라이언트는 1대1 연결 UDP 비연결지향 데이터그램방식 사용 패킷 순서, 재조립 기능을 처리하지 않기에 연속성이 중요한 서비스에 사용 데이터 손실 위험 신뢰성이 낮다. 정보를 주고 받을때 보내거나 받는 신호절차가 없다. 소켓 대신 ip를 기반으로 데이터 전송한다. 1대1, 1대n, n대m 연결 가능 간단히 비교는 다음과 같고 좀더 이해하기 .. 2022. 5. 2. 지역변수와 전역변수 프로그래밍을 하다보면 변수를 설정해주기 마련이다. 변수는 다양한 이름으로 많이 사용되는데 여담으로 가장 많이 쓰이는 변수명은 i 라고 한다. 그밖에 result, sum, a 등이 존재한다. 그럼 이 변수명들을 사용하기 위해서는 선언을 해줘야한다. 선언을 어디에 하느냐에 따라 지역변수인지 전역변수 인지 판가름이 난다. 전역변수(Global variable) 어느 위치에서든 사용 가능 함수 밖에 선언하여 클래스 전체에서 사용이 가능한 변수 지역변수(Local variable) 특정구역({}) 내에서 생성되어 그 구역에서만 사용 가능 함수 속에 선언되어 해당 함수속에서만 사용이 가능한 변수 그리고 전역변수를 좀더 파고 들어가면 인스턴스 변수와 클래스 변수가 존재하는데 인스턴스 변수 - 클래스 영역에 선언되어.. 2022. 4. 29. 캐시서버에 대해서 얼마전 캐시서버에 대한 개념을 알게 되어 포스팅으로 작성해보려고 한다. 서버를 다뤄본 사람이라면 프록시 서버에 대한 내용은 들어봤을것이다. 프록시란 대리, 대신, 대리인 이라는 뜻으로 프록시 서버는 내 인터넷을 사용하는것이 아닌 다른 서버의 인터넷 자원을 사용하여 인터넷에 접근할수 있는 그런 서버이다. 그럼 캐시 서버란 이런 프록시 서버의 일종이다. 인터넷 서비스 속도를 높이기 위해서 사용자와 가까운 곳에 임시 데이터를 캐시 형태로 저장하여 빠르게 제공해주는 서버이다. 또는 내가 해외에 있는 사이트에 접속을 해야할 경우 해외로의 통신에 필요한 사용료가 있다. 이 통신료를 절감할수 있다는 장점도 있다. 대표적인 사례로는 AWS의 클라우드 프론트가 있다. 웹 서비스 속도의 향상을 위해 제공하는 서비스고 비 .. 2022. 4. 25. 대용량 트래픽에 대한 대처법 서버든 데이터베이스든 다수의 사용자가 동시에 몰리면 트래픽이 집중이 되어 서버가 렉이 걸릴수도 있고 만약 메모리가 오버가 된다면 out of memory등의 에러를 내뱉으면서 서버가 뻗게 된다. 이를 방지할수 있는 몇가지 방안을 소개해보는 포스팅을 작성해볼것이다. was와 webserver 구분하기 대표적으로 was로는 tomcat 등이 있고 webserver 는 apache 등이 있다. 정적과 동적이라는 뜻은 알것이라 생각하고 정적인 페이지 코드들은 webserver에, 동적인 페이지 코드는 was 에 구분을 해서 작성을 해두면 페이지 로딩할때 각각 분담을 하여 로딩을 하기에 속도 개선에 도움이 된다. scale up / scale out 실제로 가장 효과적인 방법이며 가장 좋은 방법이지만 단점은 돈이.. 2022. 4. 23. Postman 이란? RESTful API 를 하게 될 경우 특정 url에 parameter 및 헤더 등등을 담아서 request를 보내는 테스트를 진행하게 된다. 대게 하나의 api를 만들고 테스트하고 그다음 api를 만들고 테스트 하고 순서대로 진행을 하다보니 한번에 많은 url을 날릴일이 없어서 크롬에서 지원하는 API tester를 사용하곤 했었다. 그러나 얼마전에 RESTAPI url에 대한 정리가 필요해서 많은 양의 url을 날려야했고 크롬에서 지원하는 API tester를 사용하자니 너무 많은 탭들이 열리게 되서 postman을 사용하게 되었다. 먼저 설치하는 법은 https://www.postman.com/downloads/ Download Postman | Get Started for Free Try Post.. 2022. 4. 21. 이전 1 ··· 22 23 24 25 26 27 28 ··· 31 다음 반응형