728x90

전체 글 35

MVC, MVP, MVVM 을 예제와 함께 알아보자 - android

1. 시작하기 전에 MainActivity.java public class MainActivity extends AppCompatActivity { private TextView textView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //뷰 작성 setContentView(R.layout.activity_main); textView = findViewById(R.id.text_view); //이벤트 처리후 뷰 업데이트 textView.setOnClickListener(view -> { textView.setText(clickedTextView()); }); } pri..

Study/Android 2021.05.14

Could not load wrapper properties from 오류 - Android

새 프로젝트를 만들었는데 빌드중 Could not load wrapper properties from어쩌구 저쩌구... 오류가 나왔다 당황하지 말자! 원래는 안드로이드 스튜디오가 gradle.zip 파일을 services.gradle.org에 접근하여 받아와야 하는데 간혹 받아오지 못하는 경우가 있는거 같다. 그럴 경우 우리가 수동으로 다운받아주면된다. 먼저 https://services.gradle.org/distributions/ 에 접속하여 내 프로젝트에 맞는 버전의 gradle.zip을 다운받자. 다운받은 gradle.zip을 프로젝트 경로의 gradle -> wrapper 내부에 dists(distributions의 약자) 라는 이름의 폴더를 만들어 넣어주자. 마지막으로 안드로이드 스튜디오의 g..

Study/Android 2021.05.14

내가 보려고 정리하는 신입 개발자 면접 질문 및 답변 - JAVA#2

이전과 이어집니다... #####내가 보려고 정리하는 신입 개발자 면접 질문 및 답변 - JAVA#1 interface와 abstract의 차이를 설명하시오. 먼저 abstract 부터 설명 드리면 추상클래스는 추상메서드와 일반 메서드, 멤버필드, 생성자는 정의 할 수 있지만 추상메서드는 내용을 정의 할 수 없습니다. 그리고 추상클래스를 상속받은 클래스는 추상 메서드 사용시 반드시 Override를 하여 정의해야 합니다 마지막으로 추상클래스는 extends로 상속 받기때문에 다중 상속이 불가능 합니다. 다음으로 interface를 설명 드리면 인터페이스는 멤버필드와 추상메서드만 정의 할 수 있습니다. 그렇기 때문에 생성자를 가질 수 없으며 객체화가 불가능 합니다. 그리고 인터페이스는 implements를..

Study/면접 준비 2021.05.12

Heap 영역과 GC(Garbage Collector) - JAVA

Heap Area 특징 자바에서의 heap 영역은 JVM 존재하는 Runtime Data Area 안에 존재한다. heap 영역은 new 연산자 등으로 생성된 객체(인스턴스)와 배열 등이 저장되는 영역이다. heqp 영역에 저장된 객체(인스턴스)나 배열은 다른 객체에서 참조 될 수 있다. GC(Garbage Collector)가 발생 하는 영역이며, 참조(레퍼런스)가 없는 객체들은 GC과정을 통해 메모리에서 제거 된다. 위의 그림과 같이 Heap 영역은 여러 여역으로 나뉘며 이는 객체의 LifeCycle 및 GC와 연관되어 있다. Heap 영역에 객체가 적재되는 방법 public class Main{ public static void main(String[] args){ int n = 10; String..

Study/JAVA 2021.05.10

2021 카카오 채용연계형 인턴십 코딩 테스트 후기

어려웠다?? 쉬웠다?? 한마디로 정하기 좀 애매하다. 총 4시간에 5문제로 나왔고 약관 때문에 문제를 말할 수는 없지만 대략적으로 말해본다면 1번은 문자열 치환 문제로 쉬운 문제였다 2번은 동적 계획법 문제였고 3번은 효율성도 함께 측정하는 문제로 LinkedList문제였던 거 같다 난이도는 프로그래머스 기준 2~3 정도였는데 3번 문제에서 효율성 때문에 시간을 많이 까먹었다ㅠㅠ 4번 문제 풀려니 이미 한 시간 남았었다. 4번 문제는 지금 생각해보면 플로이드 와샬 알고리즘으로 풀 수 있을 것 같은데 당시에는 DFS로 풀었다 5번은 풀진 못했지만 이진트리 문제였다. 카카오 코딩테스트는 우리가 흔히 공부하는 틀에 박힌 알고리즘을 문제를 2~3개 정도 섞어놓은 느낌을 많이 받았다. 그래서 어떠한 알고리즘들을 ..

Study/취업준비 2021.05.08

내가 보려고 정리하는 신입 개발자 면접 질문 및 답변 - JAVA#1

질문들은 여기서 참고했어요 https://github.com/KimHunJin/Study-Book/tree/master/interview JVM구조에 대해 설명하시오. JVM이란 JAVA 컴파일러를 통해 JAVA source code(.java)에서 바이트 코드(.class)로 변환된것을 실행 할 수 있는 주체를 말합니다. JVM은 크게 Class Loader, Runtime Data Area, Executtion engine 세가지로 나뉩니다 첫번째로 Class Loader는 JAVA 컴파일러를 통해 생성된 바이트 코드들을 엮어서 JVM이 운영체제로 부터 할당받은 메모리 영역인 Runtime Data Area로 적제하는 역할을 합니다. 두번째로 Runtime Data Area는 자바 애플리케이션을 실행..

Study/면접 준비 2021.05.08

내가보려고 정리하는 신입 개발자 면접 준비 - JAVA

갱신중! JAVA의 장단점 장점 운영체제에 독립적이다 JVM에서 동작하기 때문에 특정 운영체제에 종속되지 않는다. 객체지향 언어이다 OOP를 위한 여러 언어적 지원을 하고있다. (캡슐화, 상속,추상화, 다형성 등등) 자동으로 메모리 관리를 해준다.(Gargage Collector) JVM에서 Garbage Collector라고 불리는 데몬 쓰레드에 의해 GC(Garbage Cllection)가 일어난다 GC로 인해 별도의 메모리 관리가 필요 없으며 비지니스 로직에 집중할 수 있다. 오픈소스이다 정확히는 OpenJDK가 오픈소스이다. OracleJDK는 사용 목적에 따라서 유료가 될 수 있다. 참고 : 구글과 Oracle의 자바전쟁 많은 JAVA 개발자가 존재하며 생태계가 잘 구축되어있다. 오픈소스 라이브..

Study/면접 준비 2021.05.06

[프로그래머스][JAVA] 괄호 회전하기

programmers.co.kr/learn/courses/30/lessons/76502 코딩테스트 연습 - 괄호 회전하기 programmers.co.kr 기존에 존재하던 많은 올바른 괄호만들기 문제를 응용하는 문제였다 거기에 문자열 회전만 추가하는 문제로 문자열 회전은 앞의 문자를 하나 잘라내 뒤에 다시 붙혀넣는 식으로 풀었다 import java.util.Stack; class Solution { public int solution(String s) { int answer = 0; for(int i =0;i

[프로그래머스][JAVA] 가장 큰 수

programmers.co.kr/learn/courses/30/lessons/42746 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 programmers.co.kr 정렬 방법을 고민하느라 조금 헤맸던 문제이다 Comparator를 이용해 쉽게 풀수 있던 문제였다 전 배열과 현재 배열을 String 형태로 순서를 서로 바꿔 더해 더 큰 값이 앞으로 오도록 정렬하는 방식으로 풀었다 import java.util.*; class Solution { public String sol..

[프로그래머스][JAVA] 전화번호 목록

programmers.co.kr/learn/courses/30/lessons/42577 코딩테스트 연습 - 전화번호 목록 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조 programmers.co.kr 해시 카테고리에 있었지만 해시문제인지는 잘 모르겠다 배열을 오름차순 정렬한다면 현재 위치 이전의 값이 접두어가 아니라면 그 외의 값들은 절대 접두어일 수 없다는 점을 이용하여 풀었다 import java.util.*; class Solution { public boolean solution(String[] phone_book) { boolean answer = true; ..

728x90