본문 바로가기

분류 전체보기322

20230724 Android HttpRequest2 지난 시간에 했던 방법을 Util을 이용해 구현해보겠다. com.example.step04httprequest2에 새로운 Java Class를 만들어 준다. 이름은 Util Class package com.example.step04httprequest2; import android.os.AsyncTask; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.io.UnsupportedEncodingException; import java.net.HttpURLConnection; import java.net.UR.. 2023. 7. 24.
싱글톤 컨테이너 앞서 말한 싱글톤에서 정리를 하자면 먼저 스프링은 기업용 온라인 서비스 기술을 방향으로 지원하기 위해 만들어지고 개발되어왔다. 그렇기에 대부분이 웹 애플리케이션인데, 싱글톤사용전에는 웹 애플리케이션은 보통 여러 클라이언트들에게 동시 요청이 올 때마다 새로운 객체를 생성 소멸 했었다. 순수한 DI컨테이너는 요청을 할 때마다 새로운 객체가 만들어 졌는데 이렇게 새롭게 만들어진 객체는 고객의 요청 트래픽이 예를들어 초당 100개면 100개의 객체가 생성, 소멸이 되어 메모리 낭비가 심해진다. 이런 해결방안으로 단 하나의 객체만을 생성하고 공유하도록 하는 것이 싱글톤 패턴이다. 하지만 이 싱글톤 패턴은 위 처럼 장점이 분명하지만 단점이 여러개 존재했었는데 이 싱글톤의 문제점을 모두 해결해주면서 장점까지 끌어 갈.. 2023. 7. 24.
20230721 Android HttpRequest 새로운 모듈을 만들어주었다. 모듈이름은 AndroidHttpRequest layout이 잘 나오는지 check해주고..잘안나오면 망치모양의 makeproject를 한번눌러주면 된다. 하고 Layout요소들을 아래와 같이 추가해 주었다. 위에 디자인에서 무엇을 해보려고 하면 http://아무주소나 읽어와서 위에 화면에 출력하도록 하는 실습을 해보겠다. 즉 요청 버튼을 클릭했을 때 동작할 준비를 버튼에 해주고 입력한 url 주소를 읽어와서 http요청을 하고 정상적으로 응답이 되면 응답된 문자열을 EditText에 출력하기를 할 것이다. 안드로이드에서의 thread는 main thread를 하나를 사용하고 있다. package com.example.httprequest; import android.os.Bu.. 2023. 7. 21.
싱글톤 컨테이너와 싱글톤레지스트리에 대한 고찰 전 글에서는 스프링의 싱글톤 디자인패턴에 대해서 배웠다. 스프링의 탄생의 목적은 기업용 웹 서비스를 위해 태어났으며, 여러 고객이 동시에 사용하는 서비스를 처리하기 위해 탄생 되었는데, 이 때 발생하는 고객들의 서비스로 인해 생기는 메모리의 할당 때문에 싱글톤이 만들어졌다. 예를 들어 고객들의 수십에서 수백만건의 요청이 발생하는 서비스에서 매 요청시 새로운 객체가 생성되면서 소멸되는 과정이 발생되는데 이렇게 되면 생성되는 객체수를 메모리가 감당하기 어려워 질 수 있게 되며 해당 서비스를 운영하는 부분에 있어 서비스 장애를 초래하게 될 것이다. 하지만 이를 해결한 것이 바로 싱글톤이다. 싱글톤은 단일 인스턴스를 가지며 싱글톤패턴을 가지가되는데 이는 하나의 객체를 이용하여 고객의 요청을 처리함으로써, 효율적.. 2023. 7. 21.
20230721 Android CustomAdapter 2 안드로이드 4대 컴포넌트 Activity - UI를 제어하는 컨트롤러 하나의 앱의 여러가지가 있을 수 있고 활성화 되어야 사용가능한데 이를 활성화 시키는 것이 intent객체이다. 이 intent는 다른 앱(스마트폰에 기존에 있는 앱 -> 카메라 앱 및 통화 앱)을 활성화 시킬 때 Service - UI가 없는 무언가를 실행할 수 있는 실체를 Service라 칭한다. 안드로이드앱에는 UI는 없지만 실행이 되면 자동으로 어떤 Service가 실행되도록 할수 있다. 예를 들면 위치추적,음악재생 등 BackGround에서 동작하는 부분을 칭한다. BoadcastReceiver -방송수신자를 얘기한다. 스마트폰안에서 일어나는 이벤트들을 수신하는 무언가를 만들 수있다. 예를들면 와이파이,블루투스 의 on,off .. 2023. 7. 21.
20230721 CSS3 Flex flex요소를 사용 할 때 shirink, grow, baisis를 border의 width, style, color속성들을 일렬로 사용하듯이 일렬로 작성해 사용가능하다. glow, shrink, basis순으로 사용하는 것이며 예로 아래와 같다. flex: 0 1 auto 첫 번째는 glow 두 번째는 shrink 세 번째는 basis 순으로 사용하면 된다. 만약 flex: 1 100px 라고 사용 하면 glow, shrink를 1로 공통되게 사용 flex: 1 이라고 사용하면 glow 1로 사용한다는 뜻이다. 만약 가변길이의 input요소 3대 button 1의 비율을 갖는 flex를 갖고 싶다면 아래와 같이 작성하면된다. 위에 코드를 이용하면 아래와 같이 설정할 수 있다. main-nav의 자식요소.. 2023. 7. 21.
20230720 Android CustomAdapter 각 국가이미지를 클릭했을 때 클릭한 국가에대한 정보가 출력되보도록 하는 작업을 해보겠다. 이렇게 ListView를 만들어 준후에 margin값을 제거해주었다. 그 다음으로 ListView에 연결할 Adapter Class를 만들어준다. package com.example.step03customadapter; /* * ListView에 연결한 adapter 클래스를 정의하고 * * */ import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; public class CountryAdapter extends BaseAdapter { //모델의 갯수를 리턴하는 메서드 @Override public int.. 2023. 7. 20.
20230720 CSS3 flex2 flex에서 유연한 레이아웃을 가능하게 하는 가장 중요한 두가지 속성이 있다. flex-grow와 flex-shrink이다. 두 속성은 flex-basis속성으로 정한 플렉스박스 아이템의 기본 너비를 자동으로 늘어나거나 줄어들도록 행 안에서 적절한 너비로 배치 되도록 맞춰준다. flex-grow 속성을 지정해 주지 않거나 값이 0인 경우 레이아웃의 너비보다 아이템들의 너비합이 작들 경우 기본적으로 아이템 오른쪽 끝네 여백이 남게된다. flex-shrink는 부족하면 공간을 줄이겠다는 의미. Logo Home Study Contacts 2023. 7. 20.
20230719 Andoroid 안드로이드의 4대 컴포넌트 1.Activity -화면을 제어해주는 컨트롤러 역할 2.Service 3.BroadcastReceivier 4.ContentProvider console로 확인해보는 activity의 라이프사이클 레이아웃을 만들기 위해 소스를 수정해보겠다. 아래의 코드가 기존코드인데 이것을 LinearLayout으로 변경해보겠다. 입력한 문자를 아래 textview에 출력해보기 package com.example.step01example; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextVie.. 2023. 7. 19.