이번에는 안드로이드 앱에서 서버와 http통신하는 방법에 대해 알아보겠습니다. 앱과 서버간의 연결을 유지해야 하는 서비스가 아니라면 굳이 개발과 유지보수가 어려운 소켓통신을 구현할 필요가 없죠. 가장 기본적인 예제로 간단하게 서버와 통신하는 방법에 대해 알아보고 최근 안드로이드 버전에서 발생하는 http통신 오류를 해결하는 방법에 대해서도 알아보겠습니다. 가장 먼저 http통신을 하기 위한 클래스를 생성합니다. 액티비티 클래스 안에 inner 클래스로 생성하여도 되지만 앱 전체에서 반복적으로 http통신을 원활하게 하기 위해선 따로 하나의 클래스로 생성하고 필요할때마다 인스턴스화 해서 사용하여야 합니다. package guitar.academyservice; import android.content.Co..

안드로이드에서 리스트뷰는 아주 자주 사용하는 뷰중에 하나인데요. 보통 커스텀한 리스트뷰를 생성하고 아이템클릭 리스너를 구현합니다. 하지만 여기서 각 리스트 항목에 스위치, 버튼 등 또 다른 클릭리스너가 필요한 뷰가 속해있으면 버튼 클릭 리스너는 잘 동작하지만 기존의 리스트뷰 아이템 클릭 리스너가 동작하지 않는 문제 발생하는데요. 오늘은 커스텀 리스트 뷰에 버튼을 추가하고 리스트뷰 클릭 리스너도 같이 동작하도록 하는것에 대해 알아보겠습니다. 우선 액티비티 xml에 리스트뷰를 추가합니다 리스트뷰의 각 항목이 될 레이아웃 xml파일을 생성하고 여러분들에게 맞게 커스텀하여 작성합니다. 저는 제목텍스트뷰와 내용 텍스트뷰 1개씩, 그리고 우측에 스위치버튼 하나씩이 오게 하였습니다. 리스트뷰의 각 아이템이 될 레이아..
지난 안드로이드에서 구글맵 기본 사용법에 이어 이번에는 마커를 생성하고 응용하는 방법에 대해 알아보겠습니다. 지도가 생성되자마자 마커 하나를 생성하고 해당 마커를 선택하였을 때 커스텀한 마커 정보창을 띄워보겠습니다. 구글맵을 띄우는 방법은 지난 포스팅에서 다루었기 때문에 이미 앱에 지도를 띄운 상태를 전제로 진행해보도록 하겠습니다. 구글맵에 마커를 추가 하기 위해선 MarkOptions와 Marker 클래스를 사용하면 됩니다. 지도가 생성할 준비가 되면 오버라이딩한 onMapReady() 메소드가 실행되는데요. 지도가 생성되자마자 추가하고 싶은 마커가 있다면 해당 메소드에서 마커를 생성하면 되겠습니다. 우선 MarkerOptions객체를 만들어 생성할 마커의 기본설정을 해줍니다. LatLng seoul ..

안드로이드 스튜디오에서 구글맵 라이브러리를 연동하여 지도를 띄우는 방법에 대해 정리해보겠습니다. 우선 구글계정이 필요합니다. 회원가입후 GCP 콘솔로 이동합니다. 상단에서 구글맵 라이브러리를 적용할 프로젝트를 선택합니다. 만약 프로젝트가 하나도 없다면 생성해야합니다. 위 표시를 해놓은 프로젝트 부분을 선택하면 이 사진과 같은 팝업창이 하나 뜨는데요. 여기서 우측 상단의 새 프로젝트를 눌러 생성할 수 있습니다. 프로젝트 이름은 자유롭게 작성해주시고 회사명은 필수사항이 아니니 입력해주지 않으셔도 무방합니다. 저는 현재 담당하여 진행중인 AcademyService 프로젝트에서 진행해보겠습니다. 프로젝트를 선택하였다면 우측 상단의 메뉴를 열고 API를 선택합니다. 이제 구글맵을 프로젝트에 추가하기 위해 API ..
0. 본 글은 프로그래밍을 처음 접하는 초보자들을 위해 작성한 것입니다. 모든 연산자의 종류를 보러 오신분들은 다른 글을 참고해주세요. 또 초보자들을 위한 글인만큼 질문도 적극적으로 받고 상세해게 답변해드리니 편하게 질문 남겨주시면 되겠습니다. 1. 사칙연산자 컴퓨터는 계산을 빠르게 하기 위해 만들어졌습니다. 당연히 사칙연산을 위한 연산자는 필수겠지요. C언어에서 사칙연산자는 덧셈 + , 뺄셈 - , 곱셈 * , 나눗셈 / 가 쓰입니다. 이러한 일상생활애서도 자주 사용하던 기본적인 연산자는 평소에 쓰던것처럼 그대로 사용하면 되기때문에 예시를 보지 않겠습니다. 2. 논리연산자 이제 수학에서는 보지 못했던 프로그래밍에서 쓰이는 연산자를 알아보겠습니다. 논리연산자는 수학에서 쓰이는 or, and, not에 해..

일 년 동안 세계일주를 하던 영식이는 여행을 하다 너무 피곤해서 근처에 있는 코레스코 콘도에서 하룻밤 잠을 자기로 하고 방을 잡았다. 코레스코 콘도에 있는 방은 NxN의 정사각형모양으로 생겼다. 방 안에는 옮길 수 없는 짐들이 이것저것 많이 있어서 영식이의 누울 자리를 차지하고 있었다. 영식이는 이 열악한 환경에서 누울 수 있는 자리를 찾아야 한다. 영식이가 누울 수 있는 자리에는 조건이 있다. 똑바로 연속해서 2칸 이상의 빈 칸이 존재하면 그 곳에 몸을 양 옆으로 쭉 뻗으면서 누울 수 있다. 가로로 누울 수도 있고 세로로 누울 수도 있다. 누울 때는 무조건 몸을 쭉 뻗기 때문에 반드시 벽이나 짐에 닿게 된다. (중간에 어정쩡하게 눕는 경우가 없다.) 만약 방의 구조가 위의 그림처럼 생겼다면, 가로로 누..
문제 서로 다른 N개의 자연수의 합이 S라고 한다. S를 알 때, 자연수 N의 최댓값은 얼마일까? 입력 첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다. 출력 첫째 줄에 자연수 N의 최댓값을 출력한다. 예제 입력 1 200 예제 출력 1 19 숫자 S가 들어오면 이 S를 서로 다른 가장 많은 자연수의 합으로 만들어 자연수의 개수를 구하는 문제입니다. 아주 간단하게 해결할 수 있습니다. 가장 작은 자연수 1부터 순서대로 누적합을 구하여 S가 나오도록 하면 됩니다. 예외로 순서대로 더하다보면 S를 넘는 경우가 있습니다. 딱 맞아 떨어지는 합을 구해야 하기 때문에 순서대로 더하다가 다음수를 더했을 때 S를 넘는다면 합을 멈추고 현재 합이 몇이든 간에 딱 맞아떨어지는 숫자 하나를 더하면..

0. 앱을 개발할 때 거의 모든 경우에 기본적으로 주어지는 액션바를 제거하고 본인의 의도에 맞는 액션바를 제작합니다. 이때 커스텀 액션바를 구현하기 위해 쉬운 방법으로 toolbar를 사용한 방법을 알아보겠습니다. 1. Apptheme 변경 먼저 res - values - style.xml 파일을 수정합니다. 기본적으로 앱에는 AppTheme라는 스타일이 적용되어 있는데 이 스타일을 .NoActionBar로 변경해줘야 디폴트 액션바를 없앨 수 있습니다 만약 새로 만든 커스텀 스타일을 앱에 적용한 상태라면 해당 스타일 이름의 내용을 변경해주면 됩니다. 그다음 메니페스트 파일을 수정합니다. 저는 기본적으로 작성된것을 그대로 가져왔으나 여러분은 태그 사이의 android:theme에 .NoActionBar를 ..
- Total
- Today
- Yesterday
- 깃 허브 오류 해결
- 언리얼 빌드
- 젠킨스 에이전트 연결
- Jenkins Build Periodically
- UHT
- 백준
- 구글맵
- c언어 기초
- 안드로이드
- Connecting Jenkins
- Unreal Header Tool
- dfs
- Connecting Jenkins Agent
- 알고리즘기초
- 안드로이드 구글맵
- 알고리즘
- 젠킨스
- Jenkins
- 언리얼
- Add Node
- C언어기초
- C++
- c언어강의
- 유니티 직소퍼즐 구현
- 언리얼 기초
- 언리얼 사용자 정의 구조체
- 빌드 주기
- 깃 용량문제
- refusing to run with root privileges
- 유니티
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |