본문 바로가기

전체 글27

[Database] SQL - DDL, DML, DCL이란? 오늘은 SQL의 DDL, DML, DCL에 대해 알아보도록 하겠다! 우선 SQL이란? 관계형 데이터베이스 관리 시스템 (RDBMS)의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어이다. 관계형 데이터베이스 관리 시스템에서 자료의 검색과 관리, 스키마 생성과 수정, 데이터 베이스 객체 접근 조정 관리를 위해 고안되었다. SQL은 데이터베이스로부터 정보를 얻거나 갱신하기 위한 표준 대화식 프로그래밍 언어이다. 많은 수의 데이터베이스 관련 프로그램들이 SQL을 표준으로 채택하고 있다. SQL 문법의 종류 3가지 데이터 정의어 (DDL) 테이블의 구조를 생성하는 데 사용하며 CREATE, ALTER, DROP, TRUNCATE 문 등이 있다. CREATE - 새로운 TABLE, VIEW, INDEX.. 2023. 12. 15.
[Android] Room DB 마이그레이션에 대해 오늘은 Room DB의 마이그레이션에 대해 알아보자! 내가 실제로 간단한 메모앱을 만들면서 경험해 본 사례인데, 단순히 entity만 수정하여 빌드하고 앱을 업데이트하게 된다면? Looks like you've changed schema but forgot to update the version number. You can simply fix this by increasing the version number. 이러한 오류와 함께 앱이 종료되는 경우를 많이 보게 된다. 에러 로그만 잘 봐준다면 쉽게 해결할 수 있다! 1. 데이터베이스 버전 올리기 Database 파일의 Database Version을 올려주자 @Database( entities = [MemoEntity::class], version = .. 2023. 12. 4.
[Android] 프로가드(Proguard)에 대해 오늘은 난독화 도구인 프로가드에 대해 알아보도록 하겠다! Proguard란? 자바 기반 코드를 난독화해 주는 도구로 난독화, 용량 축소, 코드 축소, 최적화 등의 기능을 제공하여 안드로이드 애플리케이션 기본 보안 수단으로 구축할 필요성이 있다. 사용 이유 코드 난독화 - 코드를 읽기 어렵게 만드는 작업 - 디컴파일시 소스 코드를 보호할 수 있다. - 클래스와 멤버 이름을 줄여 DEX 파일 크기를 줄입니다. 앱 용량 줄이기 - 불필요한 메서드 제거 - 소스를 컴파일하게 되면 Dex파일이 생성되고 하나의 Dex파일은 65536개의 메서드를 참고할 수 있다.이를 초과하게 되면 여러 개의 Dex파일(=MultiDex)이 생성되고 이는 빌드 속도를 느리게 하고 용량이 커지게 된다. 리소스 축소 - 앱 라이브러리 .. 2023. 11. 29.
[Android] invalidate()와 requestLayout()의 차이 오늘은 Andoid에서 사용하는 invalidate()와 requestLayout()의 차이에 대해 알아보겠다! 우선 View의 생명주기를 알아놓으면 좋다. invalidate는 onDraw를 반드시 호출하지만, 사이즈를 지정하는 콜백인 onMeasure가 호출되진 않는다. 그러므로 Size가 변하지 않는다. requestLayout은 invalidate와 반대로 onMeasure를 호출하지만, onDraw를 반드시 호출하진 않는다. 대신 onMeasure가 호출되므로 Size가 업데이트된다. 즉, 단순한 변경 사항을 보여주기 위하여 다시 그리는 경우엔 invalidate를 사용하고 사이즈가 바뀌어 뷰 간의 경계에도 영향을 준다면 requestLayout을 호출해서 사용하자! 2023. 11. 21.