| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
- CKLU
- 데이터베이스
- 백준 알고리즘
- 금융IT
- 익명클래스
- 현대오토에버 코딩테스트
- 삼성SW테스트
- IT
- dfs
- 모바일
- 개발
- 안드로이드
- 다이나믹 프로그래밍
- 언더라이터
- 네트워크
- 프로그래머스
- 백준
- backjoon
- 멀티스레드
- 익명객체
- dp
- BFS
- 자바
- 알고리즘
- 너비탐색
- Android
- 조합
- Java
- 재귀함수
- 삼성sw문제
- Today
- Total
목록분류 전체보기 (237)
Limky 삽질블로그
오늘은 자바 JVM의 메모리에 대해서 알아보도록 하겠다. 사실 JVM 메모리에 대해서 왜 알아야할까? 스스로 자문했을 때 메모리 관리정도?라고 답변을 했다. 소규모프로젝트나 간단한프로그램을 만드는 개발자들은 JVM메모리에 대해서 빠삭하게 이해해야할 필요성을 느끼지 않을 수 있다. (나도 그랬으니까...) 뭐 그럴 수 있다쳐도 대규모의 프로젝트를 개발해야 할 때 적어도 Java로 개발한다면, JVM메모리 구조에 대한 이해는 필수적이며 기본적으로 알아야 할 개념인 것이다. 메모리관리에 따라 프로그램의 성능은 월등히 차이가 날 수 있으며, 메모리관리를 제대로 하지 못해 성능저하 현상이 일어나는 경우는 보통 33%가 코드를 잘 못짰거나, 메모리에 대한 이해없이 설계를 한 경우다. 생각이상으로 더 중요한게 메모리..
Enum class란? 우리가 흔히 상수를 정의할 때 final static string 과 같은 방식으로 상수를 정의를합니다. 하지만 이렇게 상수를 정의해서 코딩하는 경우 다양한 문제가 발생됩니다. 따라서 이러한 문제점들을 보완하기 위해 자바 1.5버전부터 새롭게 추가된 것이 바로 "Enum" 입니다. Enum은 열거형이라고 불리며, 서로 연관된 상수들의 집합을 의미합니다. 기존에 상수를 정의하는 방법이였던 final static string 과 같이 문자열이나 숫자들을 나타내는 기본자료형의 값을 enum을 이용해서 같은 효과를 낼 수 있습니다. Enum의 장점 Enum을 사용하면서 우리가 얻을 수 있는 이점은 다음과 같습니다. 1. 코드가 단순해지며, 가독성이 좋습니다. 2. 인스턴스 생성과 상속을 ..
이번 시간에는 브로드캐스트리시버에 대해서 알아보자.. BroadCastReceiver 는 4대 컴포넌트 중에 하나이다. BroadCastReceiver 의 역할은 단말기 안에서 이루어지는 수많은 일들을 대신해서 알려준다.예를들어 배터리부족,SMS문자메시지,전화가온다거나 하는 일들을 방송알림 해준다. BroadCastReceiver를 구현하기 위해 2가지 방법이 존재한다.코드상에서 BroadCastReceiver를 등록하는 방법인 동적인 방법과Manifest.xml에 의 형태로 등록하는 정적인 방법이 존재한다. 1. 정적으로 Receiver 구현하기 먼저 정적인 방법을 소개한다.. 앞서 말했듯이 Manifest.xml에 우선 BroadCastReceiver를 다음과 같이 등록하자! 나는 다음과 같이 폴더를..
이번 시간에는 "멀티스레드 개념"을 알아보자 우선 프로세스와 스레드를 이해하고 넘어가야한다. 운영체제는 실행 중인 하나의 어플리케이션을 "프로세스"라고 부른다. 사용자가 어플리케이션을 실행하면 운영체제로부터 필요한 메모리를 할당맏아 코드를 실행한다. 이것이 바로 프로세스다. 또 하나의 어플리케이션은 2개이상의 프로세스를 가질 수 있다. 예를 들어 chrome이라는 어플리케이션을 더블클릭을 2번하면, chrome이라는 exe 프로세스가 2개 생긴다. 또 "멀티태스킹"이란 두가지 이상의 일을 동시에 처리하는 것을 말한다. (결국 멀티스레드는 멀티태스킹을 하기 위함이다!) 운영체제에서 멀티태스킹을 지원하기 위해 CPU및 메모리자원을 각 프로세스에서 적절히 할당시키고 병렬 실행을 시킨다. 예를 들어 노래를 들으..
이번에는 안드로이드 4대 컴포넌트 중 서비스에 구현방법 중 bind타입방식을 알아보겠다.연결타입의 Service는 클라이언트/서버 구조로 생각하면 쉽다.Service에게 컴포넌트가 연결을 하면 컴포넌트가 클라이언트 서버가 Service가 된다. 이제 컴포넌트가 Service에게 요청을 하면 Service는 그에맞는 결과값을 리턴한다. 클라이언트가 연결을 해제하고, 더 이상 Service와 연결된 클라이언트가 없다면 Service는 자연스럽게 종료된다.또한 bind타입 Service는 앱 내부의 기능을 외부로 제공할 때 사용한다. 즉 "프로세스간 통신을 지원한다". 우선 bind타입 Service를 구현하기 위해선 Service를 상속 받아 onBind()함수를 오버라이딩한다. onBind()함수는 IBi..
나는 현재 중소기업규모의 소프트웨어회사에서 안드로이드 업무를 맡고있다. 안드로이드도 하면서 이것저것 개발도 하고 있다. (웹, 키넥트, 영상처리 등등) 좋은 팀원, 안정적인 보수(높지도않지만 적지도않은 초봉 하지만 중소기업기준이라면 굉장한 보수), 개인적으로 훌륭한 ceo와 경영진은 사실 처음 겪어본 회사지만, 이런 회사가 또 있을까 하는 생각도 든다. 근데 중요한건 내가 사표를 던졌다는 것이다. 그러한 행동을 한 이유 중 하나는 사실 예정된 행동이였다.. 정확히 말하면, 1년 6개월전에 처음 생각을 했고, 계획을 짰으며, 행동으로 옮겼다. 그리고 때가 왔다고 생각하고 있다. 미래에 대한 불안감이 가득했고, 성급했던 대학교 3학년이 끝나고 나는 학교내 취업센터에 찾아 상담을 받았다. 내가 건낸 첫마디는 ..
이번시간에는 오픈시간과 클로징시간을 사용자에게 입력을 받아서 앱이 오픈시간과 클로징시간을 체크해서 시간에 따른 작업을 하는 동작을 어떻게 하는지 알아보자. 우선 실제로 실무에 있으면서 안드로이드 업무를 볼 때 만들었던 소스를 잠시 응용하여 설명하겠다. 우리가 만들어 볼 앱은 대략이렇다. 1. 사용자로부터 오픈시간과 클로징시간을 커스텀 다이얼로그를 통해 입력을 받자.2. 사용자로부터 입력받은 시간 Data값의 유효성을 정규식표현을 이용해 검증하자.3. 검증이 된 Data을 시간을 오픈시간,클로징시간 전역변수에 대입한다.4. 각 시간에 따른 이벤트를 준다. (나는 오픈시간과 클로징시간 사이 즉 전시시간을 경우엔 시스템 화면 밝기를 최대로 하고, 아닌시간엔 시스템 화면 밝기를 0으로 준다) 1. 사용자로부터 ..
일전에 서비스에 대해서 전반적인 개념을 숙지했다. 안보신 분들은 꼭 선행하시길... 클릭-> 서비스전반적인개념 이제 각 서비스에 대한 구체적인 구현방법( startServie, boundService, intentService )에 대해서 알아보자. 1. StartService 타입 우선 StartService부터 구현해보자.순서는... 1. 서비스시작,종료 버튼 레이아웃 구성하기2. 매니패스트에 서비스 등록3. 서비스 상속받아 나만의 서비스 클래스 만들기.4. 매인액티비티에서 서비스 동작시키기.5. 동작화면 및 결과 1. 서비스 시작, 종료 버튼 레이아웃 구성하기 2. 매니패스트.xml 에 Service 등록 .service.StartService라고 한 이윤 StartService.class를 ser..