일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Android
- androidstudio
- bitmap
- BOJ
- Canvas
- CS
- Database
- DBeaver
- DP
- Ecilpse
- Eclipse
- firebase
- git
- github
- GooglePlayServices
- gradle
- IDE
- IntelliJ
- java
- json
- kotlin
- level2
- linux
- mariadb
- MYSQL
- Paint
- permission
- python
- Sorting
- sourcetree
목록전체 글 (184)
will come true
2019.11 ~ 2021.08 : 네이버 블로그 2021.08 ~ 2023.05 : 티스토리 2023.05 ~ : 벨로그 티스토리에 게시글 작성 기능에 불편함이 있어서 앞으로 개발관련 공부 및 오류 해결법 등은 벨로그에 게시될 에정입니다. 벨로그 바로가기 haehyunlee (haehyunlee) - velog WIL 2주차 개인 회고 (20230529) 📆 회고 기간 : 05/23 ~ 05/29 👍 Liked (좋았던 점) 오버플로우 예제에서 내가 풀이한 답안이 강사님께서 공개해주신 답안과 거의 흡사했다! 예제 풀이의 경우 나중에 공 velog.io
회고 기간 : 05/15 ~ 05/21 개인 회고에 대해서 여태까지 학습한 내용을 복습하고 요약정리하는 건 해왔으나, 이번에 좋은 기회로 회고 특강을 듣게 되어 학습 내용을 정리하는 것과 '회고'는 다르다는 걸 알게되었다. 내가 해오던 게 단순히 사실(Fact)만을 나열해오던 거라면 회고는 이 사실(Fact)에 기분(Feelings)과 깨달음(Finding)을 추가하는 것이었다. 회고(리뷰) 각 개발주기와 프로젝트가 종료된 시점에 팀원들이 함께 모여 정해진 기간 동안 수행한 업무를 돌아보는 것. 프로젝트를 진행하는 동안 잘한 점과 아쉬운 점을 찾아내고, 이를 토대로 개선을 위한 아이디어와 구체적인 액션 플랜을 도출하기 위한 과정이다. 그러면 매일매일 그 날 학습한 내용과 느낌점 등을 바로 정리하는 게 좋..
(2023-05-18 초안 -> 수정 예정) 추상클래스를 상속받는 추상클래스⭐ 개념적 분류를 위함. Animal 추상 클래스를 상속받은 MarineAnimal 그러나 아래로 Dolphine, Shark 등 자식 클래스를 더 만들어서 구현화할 예정이기 때문에 MarineAnimal이 최종 자식 클래스가 아니기 때문에 한 번 더 추상클래스 abstract로 선언해준다. 이로 인해 추상 클래스인 MarineAnimal 만으로드는 객체 생성 불가능하다. 만약 MarineAnimal 을 일반 클래스로 선언할 경우 상속받은 Animal 추상클래스의 미완성 추상메서드들을 반드시 MarineAnimal 클래스 내에서 구현해놔야 한다. (추상 메서드의 강제성) 하지만 어차피 해당 추상메서드들은 Dolphine, Shar..
변수 var (variable) : 초깃값이 할당된 후에도 값을 바꿀 수 있는 변수 val (value) : 초깃값이 할당되면 바꿀 수 없는 변수 (val을 쓸 수 있는 상황에서는 되도록 val을 많이 사용하길 권장) var 변수명:타입 = 값 변수명 뒤에 콜론(:)을 추가해 타입을 명시할 수 있는데, 대입하는 값에 따라 타입을(타입 추론)할 수 있을 때는 생략할 수 있다. 다만 메서드를 호출해서 반환값을 대입하는 경우에는 되도록 참조변수에 반환 타입을 지정해주는 게 좋다. 동료 개발자들이 이 변수가 무슨 타입인지 직관적으로 확인할 수 있으니까. 초기화 최상위에 선언한 변수나 클래스의 멤버 변수는 선언과 동시에 초깃값을 할당해야 한다. 함수 내부에 선언한 지역 변수는 선언과 동시에 초깃값을 할당하지 않아..
코틀린 코틀린은 결국 최종적으로는 자바 언어로 변환되어서 JVM에 의해 실행되지만, 코틀린에는 자바에서 지원하지 않는 기법을 제공한다. 그렇기 때문에 자바보다 간결하고 편하게, 좀 더 직관적으로 코드를 작성할 수 있다. 코틀린은 자바와 전혀 다른 언어가 아니며, 자바 코드를 편하게 쓰기 위한 확장 언어라고 생각하면 된다. 자바로 안드로이드 앱을 개발할 수 있다. 코틀린은 자바의 가상머신인 JVM에 기반을 둔 언어이다. 즉, 코틀린으로 작성한 프로그램은 JVM에서 실행할 수 있다. 개발자는 코틀린으로 코드를 작성해도, 코틀린 컴파일러(kotlinc)가 .kt 파일을 컴파일하면 자바 클래스가 만들어지고 이를 JVM이 실행한다. 코틀린은 안드로이드 앱 개발자가 많이 사용하지만 iOS앱, 서버쪽 애플리케이션도 ..
오류 오류가 날리 없는 간단한 코드를 실행하는데 아래와 같은 에러메시지가 출력된다. C:\Users\bada7\.jdks\corretto-1.8.0_372\bin\java.exe "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2023.1.1\lib\idea_rt.jar=56634:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2023.1.1\bin" -Dfile.encoding=UTF-8 -classpath C:\Users\bada7\.jdks\corretto-1.8.0_372\jre\lib\charsets.jar;C:\Users\bada7\.jdks\corretto..
직렬화(Serialization) 객체를 데이터 스트림으로 만드는 것. 객체에 저장된 데이터를 스트림에 쓰기(write)위해 연속적인(serial) 데이터로 변화하는 것을 말한다. 반대로 스트림으로부터 데이터를 읽어서 객체를 만드는 것을 역직렬화(deserialization)라고 한다. 객체 (개발용) → 직렬화 (데이터를 저장한다) 스트림 (데이터 보관용) ← 역직렬화 (저장된 데이터를 읽어들인다) 객체를 저장하는 방법 실제로 객체는 클래스에 정의된 인스턴스 변수의 집합일 뿐, 클래스변수나 메서드는 포함되지 않는다. 인스턴스 변수는 인스턴스마다 다른 값을 가질 수 있어야하기 때문에 별도의 메모리 공간이 필요하지만 메서드는 변하는 것이 아니라서 메모리를 낭비해 가면서 인스턴스마다 같은 내용의 코드(메서드..
문제상황 예외처리 테스트 과정 중 일부러 오류를 발생시켰음에도 콘솔창에 빨간색 예외/에러 메시지가 표시되지 않는다. 아래 코드는 객체의 아이디를 담지 않고 있는 null 변수에서 객체의 메서드를 호출하고 있기 때문에 본래라면 NullPointerException이라는 런타임 에러가 발생해야 한다. 해결 이 문제를 겪고있는 사람들은 대부분 프로그램을 실행하면 아래와 같이 디버그(Debug) 탭이 활성화 되고 있을 것이다. 다른 IDE의 단축키와 착각해서 혹은 디버깅과 실행의 차이점을 잘 모르는 상태에서 습관적으로 [F11] 단축키로 코드를 실행하는 사람들이 많은데 [F11]은 실행(Run)이 아니라 디버그(Debug) 단축키이다. 코드를 실행(Run)하는 단축키는 [Ctrl + F11] 이다. NullPo..
변수 (variable) 단 하나의 값을 저장할 수 있는 메모리 공간 하나의 변수에 단 하나의 값만 저장할 수 있으므로, 새로운 값을 저장하면 기존의 값은 사라진다. 변수가 '값을 저장할 수 있는 메모리 공간'이라는 하드웨어적 의미이면, 변수명은 이 메모리 공간에 이름을 붙여주는 것이다. 변수는 결국 값을 저장하고 그 값을 다시 읽어들여 사용하기 위한 것. 일정 메모리 공간을 할당한 후 다시 이 공간에 접근하기 위해서는 식별자가 필요하다. 변수의 초기화 변수의 초기화란, 변수를 사용하기 전에 처음으로 값을 저장하는 것이다. 메모리는 여러 프로그램이 공유하는 자원이므로 전에 다른 프로그램에 의해 저장된 쓰레기값이 남아있을 수 있기 때문에 초기화 과정은 필수이다. 타입의 같은 경우 콤파 ','를 구분자로 여..
Perspective란? [사전적의미] perspective : 관점, 시각(viewpoint) [이클립스] perspective 각 개발환경에 필요한 프로젝트 매니저, 뷰, 윈도우 창 등을 템플릿 형태로 지정해둔 것이다. 개발목적에 따라 perspective를 임의로 선택할 수 있다. 예) Perspective를 'Java'로 설정하면 해당 목적에 맞춰 Java 개발환경에 필요한 기본 윈도우 창들만 화면에 표시된다. Java Project를 생성하면 Perspective가 자동으로 'Java'로 설정된다. 이클립스 상단 메뉴바 > [Open Perspective] 클릭 > [Open Perspective] 윈도우 활성화 예시 A. [Perspective : Java] 선택시 활성화되는 창 (인터페이스)..