반응형 개발139 자바 연산자 (Operator) 백기선님이 과거에 진행했던 Java 스터디 3주차 스터디 입니다. 산술 연산자 산술 연산자에는 사칙 연산자(+ ,- ,* ,/ )와 나머지 연산자(%)가 있다. 곱셈, 나눗셈, 나머지 연산자가 덧셈, 뺄셈 연산자보다 우선 순위가 높으므로 먼저 처리된다. 피연산자(연산자가 아닌 것, ex 1, 10)가 정수형인 경우, 나누는 수로 0을 사용할 수 없다. boolean 타입을 제외한 모든 기본형 타입에서 사용이 가능하다. 계산하는 값의 결과가 변수의 타입의 범위를 넘어서면 오버 플로우가 발생할 수 있다. 코드 예제 byte a = 10; byte b = 10; byte c = (byte) a + b; //JVM은 기본적으로 32바이트로 계산하므로 a와 b 두 개의 피연산자들을 int형으로 바꾸어 계산한다. .. 개발/Java 2022. 5. 13. 자바 데이터 타입, 변수 그리고 배열 백기선님이 과거에 진행했던 Java 스터디 2주차 스터디 입니다. 프리미티브 타입 종류와 값의 범위 그리고 기본 값 프리미티브 타입을 기본형이라고 부르겠다. 자바에는 총 8가지의 기본형이 있다. 우선 기본형은 NULL을 가질 수 없다. 만약 NULL을 쓴다면 Wrapper 클래스를 사용해야 한다. 기본형 변수는 메모리에서 스택 영역에 저장된다. 기본형 분류, 타입 메모리 크기, 기본 값, 범위에 대해 아래와 같이 정리했다. 분류 타입 메모리 크기 기본 값 범위 논리형 boolean 1 byte false false, true 문지형 char 2 byte '\u000' '\u0000' ~ '\uffff' 정수형 byte 1byte 0 -128 ~ 127 short 2byte 0 -32,768 ~ 32,76.. 개발/Java 2022. 5. 12. Java JVM, ByteCode 백기선님이 과거에 진행했던 Java 스터디 1주차 스터디 입니다. 늦었지만 저는 이제 시작해보겠습니다. 1. JVM이란 무엇인가? JVM이란 'Java Virtual Machine'의 약어다. 자바를 실행하기 위한 가상 머신(컴퓨터)이라고 이해할 수 있다. 자바로 작성된 모든 프로그램은 JVM 위에서만 실행된다. 따라서 자바 프로그램을 작동시키기 위해서 JVM은 필수적이다. 일반 애플리케이션의 코드는 OS만 거치고 하드웨어로 전달된다. 그러나 Java 애플리케이션은 JVM을 한 번 더 거치기 때문에, 그리고 하드웨어에 맞게 완전히 컴파일된 상태가 아니고 실행시에 해석(Interpret)되기 때문에 속도가 느리다는 단점을 가진다. 그러나 요즘엔 바이트코드(컴파일된 자바 코드)를 하드웨어의 기계어로 바로 변.. 개발/Java 2022. 5. 12. Spring MVC 2편 - API 예외 처리 (@ControllerAdvice, ExceptionHandler) 본 게시글은 인프런 김영한 선생님 강의 스프링 MVC 2편을 완강하고 배운 것을 남기고자 적은 포스팅입니다. 강의 링크는 아래와 같습니다. https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-2/dashboard 스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 - 인프런 | 강의 웹 애플리케이션 개발에 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. MVC 2편에서는 MVC 1편의 핵심 원리와 구조 위에 실무 웹 개발에 필요한 모든 활용 기술들을 학습할 수 있 www.inflearn.com 본격적으로 시작하겠습니다. SSR(서버 사이드 렌더링, 템플릿 엔진)에서는 4xx, 5xx 같은 오류 페이지만 있으면 예외 처리를 할 수.. 개발/Spring MVC 2022. 5. 11. 선택위젯(어댑터뷰(AdapterView)) 선택위젯 안드로이드에서 여러 아이템 중의 하나를 선택하는 위젯을 선택 위젯이라 부른다. 배열이나 파일, 데이터베이스에 저장된 데이터를 화면에 리스트 형식으로 표시할 때 사용한다. 선택 위젯에 데이터를 공급하고 관리하는 클래스는 어댑터(Adapter) 클래스다. 선택 위젯은 어댑터에서 데이터를 관리하고, 화면에 보이는 아이텀 뷰(UI)도 어댑터에서 만들어 제공한다. 선택 위젯에는 리스트 뷰, 리사이클러뷰, 스피너, 뷰페이저 등이 있다 선택 위젯은 한 위젯 안에서 여러 개의 데이터를 보여주고 그 중 하나를 선택할 때 원하는 기능을 실행할 수 있는 위젯이다. 선택 위젯에 들어있는 하나 하나의 뷰를 '아이템'이라 부르는데, 이 '아이템'을 위한 데이터는 '어댑터'에서 관리한다. 어댑터 (Adapter) 어댑터의.. 개발/Android 2022. 4. 25. 액티비티 수명주기 액티비티 생명주기 액티비티는 실행부터 종료까지 많은 상태 변화를 거치며, 상태가 변할 때마다 생명주기 함수가 자동으로 호출된다. 액티비티의 상태는 활성 상태(Activity Running), 일시 중지 상태(Paused), 비활성 상태(Stopped)로 구분 액티비티의 생명주기는 액티비티의 생성부터 소멸까지의 주기를 말한다. 상태 설명 활성 상태(Running) (실행) 화면 상에 액티비티가 보이면서 실행되어 있는 상태. 액티비티 스택의 최상위에 있으며 포커스를 가지고 있다. onCreate() -> onStrat() -> onResume() 함수가 호출 일시중지 상태(Paused) 액티비티가 여전히 화면에 보이지만 포커스를 잃은 상태 현재 액티비티가 일시적으로 사용이 불가능한 상태 onPause() 함.. 개발/Android 2022. 4. 24. 안드로이드 시스템 스택 관리 안드로이드 시스템은 액티비티를 ActivityManager를 통해 Activity Stack으로 관리한다. 스택을 제어하는 방법 1. Intent의 플래그(Flag)로 제어하는 방법 액티비티를 실행하는 인텐트에 플래그를 이용해서, 스택 목록에 어떻게 올라가야 한다고 명시하는 방법이다. 2. LaunchMode 속성 설정 액티비티를 등록하는 AndroidManifest.xml 파일의 설정으로, 액티비티가 실행될 때 스택 목록에 어떻게 올라가야 한다고 명시하는 방법 새로운 액티비티가 실행되면 이전의 액티비티는 정지된 상태로 액티비티 스택에 저장되고, 새로운 액티비티가 화면에 보인다. 화면에 보이던 액티비티가 없어지면 액티비티 스택의 가장 위에 있는 액티비티가 화면에 보이면서 동작하게 된다. 만약, 동일한 액.. 개발/Android 2022. 4. 24. 인텐트와 데이터 전달 이전 시간 실습에서는 startActivity() 메소드는 단방향이다. 즉 데이터를 주고 받을 수 없다. 아래 링크에서 확인할 수 있다. https://devdebin.tistory.com/151?category=1014847 Intent(인텐트) 안드로이드 애플리케이션은 액티비티, 서비스, 브로드캐스트 수신자, 콘텐츠 제공자로 구성된다. 콘텐츠 제공자 : 애플리케이션간의 데이터 공유를 위해 표준화된 인터페이스를 제공하는 컴포 devdebin.tistory.com 그러면 어떻게 인텐트를 통해서 데이터를 주고 받을까? 새로운 액티비티를 띄우고, 액티비티간 데이터를 주고 받기 위해서는 startActivityForResult()를 사용해야 한다고 한다. 데이터는 인텐트에 담아 전달하며, 요청 코드는 각각의 .. 개발/Android 2022. 4. 23. Intent(인텐트) 안드로이드 애플리케이션은 액티비티, 서비스, 브로드캐스트 수신자, 콘텐츠 제공자로 구성된다. 콘텐츠 제공자 : 애플리케이션간의 데이터 공유를 위해 표준화된 인터페이스를 제공하는 컴포넌트다. 액티비티 : 사용자 인터페이스 화면을 구성하는 컴포넌트다. 메모리 관리를 위해 LifeCycle이 있으며 스택구조로 여러 개의 액티비티가 쌓인다. 서비스 : 백그라운드에서 실행되는 컴포넌트, 사용자 인터페이스를 가지지 않는다. 브로드캐스트 수신자 : 시스템으로부터 특정 브로드캐스트를 수신하거나 반응하는 컴포넌트 사용자 인터페이스를 가지지 않는다. 이 4개의 컴포넌트의 액션, 데이터 등을 전달하는 메시지 역할을 하는 것이 인텐트(Intent)다. 즉 애플리케이션 간의 메시지를 주고 받기 위한 용도로 사용한다. 인텐트(I.. 개발/Android 2022. 4. 23. Context Android Context Context는 Android system에서 제공하는 추상 클래스로, application 환경에 대한 전역 정보를 접근하기 위한 인터페이스다. Android App startup process Android에서는 application과 process가 독립적으로 운영되기 때문에, application은 ActivityManagerService에서, process는 OS에서 관리한다. ActivityManagerService는 각 application을 특정 토큰 키/값 (id)으로 구분하여 여러 application의 전역 정보를 관리한다. 더 구체적인 Context의 역할 ActivityManagerService에 접근하기 위한 인터페이스(브릿지) 역할 각 applica.. 개발/Android 2022. 4. 23. 레이아웃 인플레이션 안드로이드에서 어떤 뷰를 Activity(화면)에 띄우려면 반드시 객체화가 되어야 한다. 인플레이션이란 XML 레이아웃에 정의된 내용(뷰)이 메모리에 객체화되는 과정이다. 이 과정을 간단하게 말하면 UI를 디자인할 XML 파일 작성을 완료하면, 이후 setContentView 메소드에서 XML 레이아웃 파일을 매핑한다. 그러면 xml 파일을 View로 만들어서 Activity(화면) 위에 보여준다. 그러면 setContentView는 무슨 역할을 할까? Activity 화면에 나타날 뷰를 지정한다. 화면 전체를 설정하는 역할이지 부분 화면 설정은 불가능하다. XML 레이아웃 내용을 메모리에 객체화시킨다. 이것이 인플레이션(inflation)이다. 그렇다면 부분 화면 인플레이션은 어떻게 진행할까? setC.. 개발/Android 2022. 4. 23. 리니어 레이아웃(LinearLayout)과 상대 레이아웃(RelativeLayout) 이번시간에는 리니어 레이아웃과 상대 레이아웃에 대해 알아보겠습니다. 먼저 레이아웃의 전체적인 개요와 제약 레이아웃에 대해 알아보고 싶다면 아래 링크로 접속하시면 되겠습니다! https://devdebin.tistory.com/138 제약 레이아웃(Constraint Layout) 레이아웃은 화면을 구성하는 뷰들을 배치하는 컨테이너로서 다양한 유형의 레이아웃을 제공한다. 아래와 같은 레이아웃들을 확인할 수 있다. 레이아웃 이름 설명 제약 레이아웃 (ConstraintLayout) devdebin.tistory.com 1. 리니어 레이아웃 리니어 레이아웃은 뷰를 가로(Horizontal) 또는 세로(Vertical) 방향으로 일렬로 배치하는 레이아웃이다. 이에 대한 속성에 대해 알아보자. 채우기 : fill.. 개발/Android 2022. 4. 5. 이전 1 ··· 4 5 6 7 8 9 10 ··· 12 다음 반응형