분류 전체보기 67

[Android] Glide 라이브러리 gif파일 로드

오늘은 ImageView에 url로 이루어진 데이터를 바인드하기 위해서 자주 사용하는 Glide라이브러리에 대한 내용입니다. gif파일을 로드하는 방법에 대한 자료는 많지만 여러가지 이미지로 이루어진 gif의 애니메이션 효과를 컨트롤할 수 있는 자료가 많이 없는 것 같습니다..ㅜㅜ 우선 저는 gif파일의 모든 이미지를 한번씩 로드하고(움짤처럼 재생됩니다.) 해당 이미지뷰를 사라지게 하는 기능이 필요하여 구현하게 되었습니다. implementation 'com.github.bumptech.glide:glide:4.9.0' 우선 build.gradle에 추가해야하는 glide 버전입니다. 저와 버전이 다르다면 DrawableImageViewTarget 또는 Animatable2Compat, GifDrawab..

[Android] 서버에서 데이터 불러오기

안녕하세요. godsangin입니다. 오랜만에 글을 올리게 되었는데요. 최근에 GCP(Google Cloud Platform)을 사용해 보는 관계로 이런 저런 시행착오가 있어서 글을 못썼습니다...ㅠㅠ 오늘은 서버에서 데이터를 불러오기 예제를 진행해보겠습니다. 여러분은 이미지를 포함하는 데이터베이스를 어떻게 설계하시나요 ?? 저는 테이블 안에 url속성을 주고 해당 url에 이미지를 저장한 url을 저장해주는 방식으로 설계하였습니다.(현업에서는 어떻게 하시는지 정말 궁금..) 우선 아래는 제가 만든 Skin이라는 클래스(테이블)입니다. class Skin(){ var sid = 0 var pid = 0 var title: String? = null var content: String? = null var..

쓰레드와 멀티쓰레드

안녕하세요. 오늘은 쓰레드와 멀티 쓰레드에 관하여 글을 써볼까 합니다. 혹시 이런 Exception을 보신 적이 있나요 ?? main이라는 쓰레드에서 ArrayIndexOutOfBoundsException이 발생한 경우입니다. 쓰레드는 독자적으로 실행 가능단 작업의 최소 단위입니다. 위의 경우 자바의 main이라는 쓰레드를 생성하고 그 안에서 이루어지는 어떤 독자적인 코드의 흐름에 의해서 발생한 예외상황이기 때문에 해당 쓰레드는 Exception과 함께 종료됩니다. 하지만 우리가 알고있는 대부분의(OS라던지, PC 프로그램, 소켓 통신, 애플리케이션) 프로그램은 하나의 쓰레드로만 동작하지는 않습니다. RPG 게임을 한다고 가정해볼까요 ?? 나의 캐릭터는 서버와 통신하고 승인이 되면 게임에 '접속'이 됩니..

static 객체와 일반객체

오늘은 java를 비롯한 많은 프로그래밍 언어에서 사용되는 static이라는 개념에 대해서 정리해보도록 하겠습니다. 여러분들은 언제 static이라는 키워드를 사용하십니까? 저의 경우에는 일반적으로 전역변수를 사용하거나 유일하게 존재해야만 하는 singleton객체를 생성할 때 사용합니다. static키워드를 사용하면 처음에 초기화된 순간부터 메모리의 한 영역에 할당되어 특별한 명령이 없으면(메모리 free명령 등) 프로그램이 종료될 때까지 해당 영역을 차지하게 됩니다. 그래서 이를 변수로 사용하면 한 클래스로 생성된 N개의 객체에서 하나로 통용되는 변수로 사용될 수도 있습니다. 예를들어 휴대폰 공장에서 휴대폰을 만들었다고 가정해봅시다. 휴대폰이라는 클래스로 Phone이라는 클래스가 만들어질 수 있겠죠 ..

[DB] 인덱스, 트랜잭션이란?

학부시절 데이터베이스 수업때 잠깐 배웠던 개념 중 인덱스, 트랜잭션이라는 개념이 있었습니다. 하지만 최근 본 면접에서 관련 질문을 받았는데 대답을 하지 못했습니다...ㅜㅜ 그래서 오늘은 인덱스와 트랜잭션에 대해 간략하게 설명(기록?)해 보도록 하겠습니다. 인덱스에 대한 자료를 찾아본 결과 db에서의 인덱스는 os에서 페이징테이블을 연상시키게 했습니다. 인덱스란 많은 양의 데이터베이스를 순회할 경우, 비용을 최소화시키기 위해 책으로 비유하자면 특정 부분에 책갈피처럼 끼워놓은 부분들의 페이지 번호를 따로 테이블로 정의하는 것이라고 할 수 있을 것 같습니다. RDBMS에서 주로 사용하는 기술로 검색 속도를 높여준다는 장점이 있지만, 인덱스를 저장할 또 다른 파일이 필요하기 때문에 용량이 커진다는 단점이 있습니..

[Web] Spring Boot로 Rest API만들기(3/3)

오늘은 지난 시간에 이어 jdbc라이브러리를 통하여 local 서버의 mysql 데이터 베이스를 사용한 rest api만들기 실습을 진행해 보도록 하겠습니다. 우선 build.gradle에 새로운 라이브러리를 추가합니다. // https://mvnrepository.com/artifact/org.mybatis/mybatis implementation("org.mybatis.spring.boot:mybatis-spring-boot-starter:2.0.1") implementation("org.springframework.boot:spring-boot-starter-jdbc") // https://mvnrepository.com/artifact/mysql/mysql-connector-java impleme..

[Web] Spring Boot로 Rest API만들기(2/3)

저번 시간에 이어서 Rest API만들기 실습은 진행하도록 하겠습니다. MVC패턴의 Controller까지 만들었다면 남은건 이제 Model입니다.(View는 지난 실습에 사용했던 hello.html이라고 할 수 있겠습니다.) 우선 model을 만들고 controller와 연결시키기 위한 패키지를 만듭니다. dto, dao, service 여기서 dto는 모델객체를 정의하고 getter,setter만들 정의한 말 그대로 Model입니다. 그리고 dao는 정의한 모델에 대한 CRUD기능만을 담당하고 있습니다. 그리고 service에서 우리가 원하는 기능을 커스텀할 수 있도록 작성하였습니다.(혹시 제가 이해하는 바가 아니라면 알려주세요..ㅠㅠ) 간단한 예제를 위해 스마트폰을 판매하는 매장에서 기기들을 들여오..

[Web] Spring Boot로 Rest API만들기(1/3)

웹 개발자라면 Spring을 모를 수는 없을 것입니다. Spring이란 웹 개발을 더욱 편리하도록 하고 많은 웹 개발자에게 표준적이라고 할 수 있는 프레임워크입니다. 이번 시간에는 간단하게 Spring Project를 만드는 방법과 간단한 테스트를 진행해보도록 하겠습니다. (IDE - Eclipse, Build Method - Gradle) 우선 Eclipse MarketPlace에서 Spring Boot라이브러리를 다운받습니다.(Help - Eclipse MarketPlace) 그리고 Gradle도 다운받도록 합니다. 그런 뒤에 File-New-Other탭으로 가서 Spring Starter Project를 생성합니다.(빌드 타입은 Gradle로 설정해주세요) 의존성은 간단하게 MySQL, Web과 같..

[RPG 키보드] 나만의 키보드를 특별하게!

안녕하세요. godsangin입니다. 오늘은 드디어 제가 그동안 개발일지를 작성했던 키보드 애플리케이션을 소개하는 날입니다. 키보드 앱을 개발하면서 여러가지 다른 키보드 앱을 다운받아 사용해 보았지만, 주로 키 패드 뒤로 나타나는 이모티콘이나, 오타 보정, 이모티콘 보내기(사진으로 보내기) 등의 기능을 가진 키보드들이 많았습니다. 그래서 저는 키 패드 자체에 애니메이션 효과를 가진 키보드를 만들어 보면 어떨까? 하는 생각을 할 수 있었습니다. 안드로이드에서 분리된 기능은 KeyboardView에서는 키 패드를 누를 경우 정적인 Preview를 고정시키는 기능을 가지고 있었지만 '직접 커스텀한 키보드로는 정적인 view보다는 동적인 애니메이션을 사용할 수 있겠구나'가 주된 아이디어였습니다. 그래서 이미지와..

내가만든앱 2019.11.22

[Android] 키보드 앱 만들기 후기

안녕하세요 godsangin입니다. 약 3주에 거쳐 키보드 앱 개발하는 과정을 포스팅하게 되었는데요. 블로그 글은 처음 써본 관계로 여러가지 시행착오가 많았던 것 같습니다. 처음 InputMethodService에서 InputConnection을 가져오는 과정에서부터 직접 만든 한글, 영어, 특수문자 등의 키보드에 직접 적용시키는 것 까지. 여러분들은 본인만의 키보드를 잘 만들 수 있었나요 ?? 만약 힘드셨다면 저에게 피드백을 남겨주세요..ㅠㅠ 저 또한 키보드에 대해 공부하면서 개발하였기 때문에 아직까지도 코드가 깔끔하지 않고, 천지인 키보드 같은 경우에는 낯선 문자가 발견되거나, 널문자가 포함되어 카톡을 보내거나 인터넷 검색을 할 경우에 이상한 유니코드가 발견되는 등 많은 수정해야할 사항이 존재합니다...