debugdaldal의 등록된 링크

 debugdaldal로 등록된 티스토리 포스트 수는 174건입니다.

[JavaScript] ECMAScript 2015 / ES6 (4) / Promise, async-await [내부링크]

※ 프로미스(Promise) 싱글쓰레드인 자바스크립트에서 비동기 처리를 위해서 콜백(callback)을 사용해 왔다. 그 결과 비동기 처리를 온전히 해낼 수 있었지만 이런 콜백이 사용되는 경우가 많아지면서 단점이 드러..

안전한 패스워드 저장 및 자바로 SHA-256 해싱 알고리즘 사용하기 [내부링크]

일반적인 패스워드 저장방법 단순 텍스트 단방향 해시 함수의 다이제스트(digest) 단순 텍스트를 사용하고 있다면, 지금 당장 변경해야한다. 절대 해서는 안되는 일이다. 단방향 해시 함수는 수학적인 연산을 통해..

[Spring Batch] 스프링 배치 Mybatis + ( Oracle + MsSql ) 다중 DB 연동 [내부링크]

기존 사용하던 배치는 Oracle이었다. 그리고 거기에 MsSql을 추가해야 할 일이 생겼다. 물론 될것같긴 했지만 확실하게 확인해보는게 좋을 것 같아 새 프로젝트에서 Oracle + MsSql 세팅을 간단히 해보고 정상적으..

[JavaScript] ECMAScript 2015 / ES6 (3) / 화살표 함수 [내부링크]

※ 기존 함수와 형태비교 function getDouble(num) { return num*2; } //화살표 함수 const getDouble = (num) => num*2; ※ 파라미터에 따른 화살표 함수의 형태 const noParam = () => "No Param"; const onePar..

[JavaScript] ECMAScript 2015 / ES6 (2) / 클래스(Class) [내부링크]

ES6 클래스는 프로토타입 기반 객체지향 패턴을 더 쉽게 사용할 수 있는 대체재이다. 클래스 패턴 생성을 더 쉽고 단순하게 생성할 수 있어서 사용하기도 편하고 상호운용성도 증가된다고 한다. ※ 클래스 생성자..

[JavaScript] ECMAScript 2015 / ES6 (1) / var, let, const [내부링크]

ECMAScript는 JavaScript 프로그래밍 언어를 정의하는 국제 표준의 기구이다. ECMAScript의 6번째 표준인 ES 2015에서 모던 프로그래밍 요소를 도입해 문법이 혁신적으로 바뀌었고 사용하기 편리해졌다. ※ 변수,..

JPA에서 @Repository에서 쿼리를 사용할 떄 주의할 점 [내부링크]

사용쿼리 @Repository public interface AuthRepository extends JpaRepository<Auth, Long> { Auth findByUserIdAndUserPassword(String userId, String userPassword); @Modifying @Transactional @Query("UPDAT..

ORM과 JPA에 관하여 [내부링크]

※ ORM(Object Relational Mapping) 객체와 DB의 테이블 매핑을 이루는 것을 말합니다. 좀 더 자세히 말하면 객체형 데이터(Java Object)와 관계형 데이터(Relational DataBase) 사이에서 개념적으로 일치하지 않..

[JWT] JSON Web Token - AssessToken과 Refresh 토큰 [내부링크]

JWT는 기본적으로 두 가지 토큰을 사용합니다. ※ Access Token API 요청을 허가하는데 사용합니다. 리소스에 직접 접근할 수 있도록 해주는 정보만을 가지고 잇습니다. 즉 클라이언트는 Access Token이 있어야 서..

[JWT] JSON Web Token - 서버기반/토큰기반 인증의 차이와 JWT의 장단점 [내부링크]

※ 서버 기반 인증 기존의 인증 시스템에서는 서버측에서 유저들의 정보를 세션에 기억하고 있어야 합니다. 이 세션을 유지하기 위해서는 여러가지 방법이 사용되는데 메모리/디스크/데이터베이스 시스템에 이를..

[JWT] JSON Web Token JWT Process [내부링크]

※ JWT 프로세스 1.사용자가 id /password를 입력하여 로그인을 시도합니다. 2.서버는 요청을 확인하고 secret key를 통해 Access Token을 발급합니다. 3.JWT 토큰을 클라이언트에 전달합니다. 4.이후 JWT가 요구..

[JWT] JSON Web Token 소개 및 구조 [내부링크]

※ JWT 정의 JSON Web Token(JWT) 은 웹표준(RFC7519) 으로서 두 개체에서 JSON객체를 사용하여 가볍고 자가수용적인(self-contained)방식으로 정보를 안정성 있게 전달해줍니다. ※ JWT 구조 Header, Payload, Si..

[자바] 자바 리플렉션 (Java Reflection) [내부링크]

※ 정의 - 구체적인 클래스 타입을 알지 못해도, 그 클래스의 메소드, 타입, 변수들에 접근할 수 있도록 해주는 자바 API ※ 어떻게 가능할까? - 자바 클래스 파일은 바이트 코드로 컴파일되어 Static 영역에 위치..

[SPRING] DI 란...? [내부링크]

※ DI (Dependency Injection) 란? 의존성 주입이란 말로도 쓰이며 스프링 IOC 컨테이너 핵심 개념 중 하나이며 이미 다양한 프레임워크에 적용되어 있다. 객체 간의 의존 관계를 외부의 조립기가 관리 불필요한..

[자바] 네트워킹 (Networking) [내부링크]

※ 네트워킹이란? 두 대 이상의 컴퓨터를 케이블로 연결하여 네트워크를 구성하는 것. 컴퓨터들을 서로 연결하여 데이터를 손쉽게 주고받거나 또는 자원(프린터와 같은 주변기기)을 함께 공유하고자 하는 노력에서..

[자바] 쓰레드(thread) [내부링크]

※ 프로세스와 쓰레드 프로세스(process) - 실행 중인 프로그램 (프로세스는 데이터, 메모리 등의 자원과 쓰레드로 구성되어있음) 쓰레드(thread) - 프로세스의 실제 작업을 수행하는 것 프로세스가 가질 수 있는..

[자바] 인터페이스와 상속의 비교 및 정리 [내부링크]

※ extends와 implements의 차이 - extends 상속을 뜻한다. 사전적 의미로는 확장,확대의 뜻을 가지고 있다. 코딩으로 치면 조상의 멤버(메서드, 변수 등)를 자식에서 그대로 물려받아 추가적으로 자식의 멤버를..

[자바] 예외처리 (Exception) [내부링크]

※ 에러의 종류 - 컴파일 에러 : 컴파일 도중에 생기는 에러 (소스코드에 대한 오타, 잘못된 구문, 자료형 체크 등등) - 런타임 에러 : 실행 도중 생기는 에러 (컴파일 완료 후 시스템 실행시 생기는 에러) ※ 자..

[자바] 인터페이스 (Interface) [내부링크]

※ 인터페이스란? 일종의 추상클래스로써 인터페이스는 추상클래스처럼 추상메서드를 갖지만 추상클래스보다 추상화 정도가 높아서 추상클래스와 달리 몸통을 갖춘 일반 메서드 또는 멤버변수를 구성원으로 가질..

[자바] 추상클래스 (Abstract Class) [내부링크]

※ 추상클래스란? 추상 메서드를 포함하고 있는 클래스. 추상 클래스는 미완의 추상 메서드가 있는 클래스로써 추상클래스는 상속을 통해서 자손 클래스에서 구현이된다. ex) abstract class Car { //추상클래스 p..

[자바] 다형성 (Polymorphism) [내부링크]

※ 다형성 다형성이란 '여러 가지 형태를 가질 수 있는 능력'으로써 자바에서는 한 타입의 참조변수로 여러 타입의 객체를 참조할 수 있도록 함으로써 다형성을 프로그램적으로 구현 조상클래스 타입의 참조변수로..

[자바] 제어자(Modifier) [내부링크]

※ 제어자란? 클래스, 변수 또는 메서드의 선언부에 함께 사용되어 부가적인 의미를 부여한다. 제어자의 종류는 크게 접근 제어자와 그 외의 제어자로 나눌 수 있다. ※ static '클래스의' 또는 '공통적인'의 의미..

[자바] 상속 [내부링크]

※ 상속이란 기존 클래스를 재사용하여 새로운 클래스를 작성하는 것 ※ 상속방법 class Child extends Parent{ ... } ※ 상속의 특징 생성자와 초기화 블럭은 상속되지 않는다. 멤버만 상속된다. 자손 클래스의..

[자바] 오버로딩 / 오버라이딩 [내부링크]

※ 오버로딩이란? 메서드 이름이 같더라도 매개변수에 따라 하나의 메서드 이름으로 여러 기능을 구현할 수 있는 기능이다. ex) void println() void println(boolean x) void println(char x) void println(int x..

Recursion의 응용 [Counting Cells in a Blob] [내부링크]

※ 문제 설명 private static int BACKGROUND_PIXEL = 0; private static int IMAGE_PIXEL = 1; private static int VISITED_IMAGE_PIXCEL = 2; private static int[][] grid ={ {1,0,0,0,0,0,0,1}, {0,1,1,0,0..

Recursion의 응용 [미로찾기1] [내부링크]

※ 재귀함수를 이용한 미로찾기 - 재귀함수를 이용하여 위의 미로의 형태에서 출구를 찾는 알고리즘을 구현 한다. - 문제에서는 findExit 메소드의 리턴값을 boolean으로 두고 출구가 있느냐 없느냐를 true, fals..

순환(RECURSION)의 개념과 기본 예제3 [내부링크]

※ 순환 알고리즘 설계(Design Recursion) 적어도 하나의 base case, 즉 순환되지 않고 종료되는 case가 있어야 된다. 모든 case는 결국 base case로 수령되어야 함. 암시적(implicit) 매개변수를 명시적(explicit..

순환(RECURSION)의 개념과 기본 예제2 [내부링크]

※ 순환적으로 사고하기(Recursive Thinking) - Recursion은 수학함수뿐 아니라 다른 많은 문제들도 해결 가능하다.(반복문) ※ 예제 - 글자 길이구하기 public class ex { public static void main(String[] args..

순환(RECURSION)의 개념과 기본 예제1 [내부링크]

※ RECURSION? - 자기 자신을 다시 호출하는 메소드(재귀함수) - 무한루프에 빠질 수 있으므로 적어도 하나의 breaking point를 만들어준다. (Base Case) - recursion을 반복하다보면 결국 base case로 수렴해야..

알고리즘의 분석, 공간 복잡도, 시간복잡도 [내부링크]

※ 알고리즘 분석 - 알고리즘의 실행 시간 및 기타 자원의 사용량을 분석 - 기타 자원으로는 메모리, 저장장치, 통신 등이 있다. - 알고리즘 분석에는 시간 복잡도(Time Complexity)와 공간 복잡도(Space Complexi..

[자바] 클래스 [내부링크]

※ 클래스란? 객체지향 프로그래밍에서 로직과 데이터를 묶어놓은 하나의 단위 혹은 객체를 정의해놓은 것으로써 객체를 생성하는데 사용된다. ※ 클래스와 객체 위에서 말했듯 클래스는 객체를 생성할 때 사용된..

JVM(자바가상메모리)의 메모리구조 [내부링크]

※ JVM(자바가상메모리)의 메모리구조 이전 글에서 JVM은 운영체제에 상관없이 자바코드와 운영체제 사이에서 운영체제 맞게 변경시켜주는 역할을 한다고 했다. 하지만 이 외에도 응용프로그램이 실행되면 JVM은..

자바 API와 API 문서보는 법 [내부링크]

※ API (Application Programming Interface) 란? - 응용 프로그램에서 사용할 수 있도록 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스 - Java SE(JDK)를 설치하면 자바시스템을..

자바(Java Programming Language)의 특징과 JVM [내부링크]

※ 특징 운영체제 독립적 - JVM(자바가상머신)이 운영체제마다 이해할 수 있는 형태로 변환하여 전달하기 때문에 자바로 작성한 코드는 운영체제와 하드웨어에 종속되지 않고 실행된다. 객체지향 언어 - 객체지향..

[JavaScript] 자바스크립트 객체지향 프로그래밍 - 합성 [내부링크]

※ 합성이란? 필요한 기능을 직접 구현하는 것이 아니라 필요한 기능을 구현하고 있는 객체와 연결(합성)해서 기능을 사용하는 것. ※ 상속과 합성비교 상속과 합성 모두 기능을 직접 구현하지 않고 사용한다는 공..

[JavaScript] 자바스크립트 객체지향 프로그래밍 - 다형성 [내부링크]

※ 다형성이란? 다형성은 특정 기능을 선언(설계)부분과 구현(동작)부분으로 분리한 후 구현부분을 다양한 방법으로 만들어 선택하여 사용할 수 있게 하는 기능이다. 몇가지의 예를 들어보자 도형은 여러가지의 모..

[JavaScript] 자바스크립트 객체지향 프로그래밍 - 상속 [내부링크]

※ 상속이란? 부모 클래스의 속성과 메서드를 자식 클래스가 물려받는 것. 상속을 받은 자식 클래스는 부모 클래스의 속성과 메서드를 사용할 수 있고 필요한 기능을 추가해 확장할 수 있다. ※ 상속의 기능 코드..

[JavaScript] 자바스크립트 객체지향 프로그래밍 - 캡슐화 [내부링크]

※ 캡슐화란? 일반적으로 연관 있는 변수와 함수를 클래스로 묶는 작업. 얼핏보면 그냥 클래스를 만드는 작업 이라고 생각 할 수 있다. 캡슐화에는 은닉성이란게 있어서 클래스에 담는 내용 중 외부에서 접근하지..

[JavaScript] 자바스크립트 객체지향 프로그래밍 - 추상화 [내부링크]

※ 추상화란? 객체지향에서 추상화란 객체들의 공통적인 프로퍼티와 메소드를 뽑아내는 작업을 의미 ex) 동물을 추상화 했을때.. 먹다() 메소드와 배설하다() 메소드는 모든 동물들의 공통 메소드가 될 수 있지만..

[JavaScript] 자바스크립트 객체지향 프로그래밍 기초 [내부링크]

※ 절차지향 프로그래밍 vs 객체지향 프로그래밍 - 절차지향 프로그래밍 여러개의 작은 함수로 나누어 작성, 함수들을 원하는 순서에 맞게 작성하는 방식 전역데이터를 공유해 사용하므로 데이터가 잘못 처리될 수..

[jQuery] jQuery 플러그인 그룹 [내부링크]

※ 플러그인 그룹이란? - jQuery 플러그인을 만들다 보면 하나 이상의 연관된 플러그인을 만들게 된다. 이런 플러그인들간의 그룹을 플러그인 그룹이라 한다. 앞 글(jQuery 플러그인 제작)에서 jQuery플러그인을..

[jQuery] jQuery 플러그인 제작 [내부링크]

※ 유틸리티? 플러그인? 유틸리티 : 인스턴스를 생성하지 않고 클래스에 직접 접근해 도움을 주는 기능 플러그인 : 인스턴스를 생성하여 사용하고 특정 기능을 재사용하고자 할 때 사용하는 포장 기능 ※ jQuery..

[JavaScript] 자바스크립트 클래스 (2) [내부링크]

※ 함수단위 코딩 vs 클래스 단위 코딩 - 함수 단위 코딩을 하든 클래스 단위 코딩을 하든 같은 결과물이 나올 수 있다. 하지만 굳이 어려운 클래스 코딩으로 해야하는 이유는 무었일까? 함수단위의 코딩은 동일한..

[JavaScript] 자바스크립트 클래스 (1) [내부링크]

클래스의 개념은 자바를 해봤다면 알고 있을 것이다. 자바스크립트는 객체지향 프로그래밍 언어에서 기본적으로 제공하는 클래스라는 개념을 제공하지 않는다. 하지만 자바스크립트에서는 클래스처럼 사용할 수 있..

[jQuery] 좌표 개념, 위치(좌표) 다루기, 크기 다루기 [내부링크]

※ 위치 개념 지역 좌표 : 부모 노드 기준 좌표 전역 좌표 : 최상위 노드인 document의 left, top 위치가 0으로 시작 ※ 위치다루기 지역 좌표 구하기 $대상.position().left / $대상.position().top ex) $("chil..

[JQuery] 이벤트 다루기 [내부링크]

※이벤트의 종류 마우스 이벤트 : 마우스를 사용했을 때 발생하는 이벤트 키보드 이벤트 : 키보드를 눌렀을 때 발생하는 이벤트 태그요소 고유 이벤트 : 엘리먼트마다 발생하는 고유 이벤트 ex)<img> 태그요소의..

[jQuery] .on() 으로 이벤트 설정하기 [내부링크]

.on()은 하나 혹은 하나 이상의 이벤트를 설정가능하다. ex1 $( "#dataTable tbody tr" ).on( "click", function() { console.log( $( this ).text() ); }); ex2 $( "#dataTable tbody" ).on( "click", "tr", func..

[jQuery] 노드 생성/ 추가 / 삭제 / 이동 [내부링크]

1.노드생성 var 신규노드 = $("신규 DOM"); ex) var $newNode = $("<li>New Node</li>"); DOM을 $()함수에 매개변수로 넣음으로써 jQuery객체로 return 받는다. 노드를 생성한다는게 DOM을 제이쿼리로 감싼다는 의..

[jQuery] 부모 노드 찾기, 형제 노드 찾기 [내부링크]

부모노드란 어떤 노드의 바로 한단계 위의 노드이고 그 이상의 노드들은 조상 노드라고 한다. 형제노드는 어떤 노드와 같은 단계의 노드를 형제 노드라고 한다. 1.부모 노드 찾기 $대상.parent() 2.조상 노드 찾기..

[jQuery] 자식 노드 찾기 [내부링크]

자식노드 찾기는 전에 포스팅한 [jQuery] 찾은 노드 다루기 응용이므로 따로 설명하지 않겠다. 자식노드는 바로 한단계 하위 노드이며 그 이상의 하위노드는 자식노드라 하지않고 자손노드라 한다. 그런 노드들은..

[jQuery] 찾은 노드 다루기 [내부링크]

1.찾은 노드개수 구하기 $대상.length; ex) var nodeLength = $("div).length; 해당 html의 div 노드의 총 개수를 구함 2.찾은 노드중 n번째 노드 접근하기 $대상.eq(index); ex) var $div_3 = $("div").eq(3); 해..

[jQuery] 노드 찾기 [내부링크]

※ 노드찾기 1.아이디로 찾기 $("#아이디") 2.클래스 이름으로 찾기 $(".클래스 이름") 3.태그 이름으로 찾기 $("태그 이름") 4.속성옵션으로 찾기 $("속성옵션") 속성옵션 설명 $("[id]") 아이디가 적용된 모든..

[jQuery] $()란? [내부링크]

우리는 보통 jQuery를 쓸때 $("div).css("boder", "4px solid"); 와 같은 형태로 쓴다. 항상 앞에 $("CSS 선택자")의 형식으로 쓴다. 여기서 $()란 무엇을 나타내는 것일까? 바로 $()는 함수를 나타낸다. $ 함수..

[JavaScript&Query] $(document).ready 와 window.onload의 차이 [내부링크]

$(document).ready() 와 window.onload는 모두 웹페이지가 로드되면서 발생한다. ready()는 DOMContentLoaded 이벤트를 포함한 메서드로써 이 이벤트는 웹페이지를 읽은 후 태그와 1:1 매핑되는 DOM 객체를 생성한..

[JavaScript&jQuery] 자바스크립트와 jQuery의 관계 [내부링크]

※ 자바스크립트와 jQuery와의 관계 jQuery는 오직 자바스크립트 DOM 작업을 좀더 쉽게 도와주는 라이브러리 (자바스크립트 문법이나 라이브러리를 대체할 수 있는 새로운 프로그래밍 언어가 아니다!) $("#menu li..

[JavaScript&Query] DOM에 대해 알아보자 [내부링크]

※ DOM 이란? Document Object Model의 약자로 문서를 객체로 표현하기 위한 표준으로 HTML, XML등의 문서로 표현할때 사용 하는 API 문서의 구조적 형태를 제공하므로 자바스크립트와 같은 스크립트 언어를 사용..

[SPRING] log4sql을 이용한 쿼리 로그 출력 [내부링크]

1.라이브러리를 다운받는다. https://sourceforge.net/projects/log4sql/files/ <== 라이브러리 다운 2.프로젝트에 라이브러리를 추가한다. 경로를 WEB-INF아래 lib 폴더를 추가하여 log4sql.jar를 복사한다음 프..

[SPRING] 마리아(Maria)DB연동 및 Mybatis 설정하기 [내부링크]

※ 순서 1. pom.xml에 관련 라이브러리 추가하기 2. root-context.xml에 bean 설정하기 3. mybatis관련 config파일과 쿼리가 작성될 파일 생성하기 4. DB가 연동이 됐는지 테스트 하기 ※ 구조 프로젝트의 구조는..

[SPRING & GIT] 이클립스 / 스프링 프로젝트 GitHub(깃허브)와 연동하기 [내부링크]

1) 깃허브 홈페이지에 들어가 이클립스의 프로젝트와 연동하기 위한 repository를 생성한다. 2) 이클립스를 실행한 후 아래 버튼을 누른다. 3) Clone a Git repository를 클릭한다. 4) Clone a Git repository를..

[SPRING] DispatcherServlet에 관하여... [내부링크]

※ DispatcherServlet 이란? 프론트 컨트롤러(Front Controller) 이다. Servlet 컨테이너에서 HTTP 프로토콜을 통해 들어오는 모든 요청을 제일앞에서 처리할 수 있는 컨트롤러. ※ 동작 방식 자바 서버의 서블릿..

[SPRING] web.xml , root-context.xml , servlet-context.xml 에 관하여... [내부링크]

1) web.xml 설정을 위한 설정파일이다. 배포 기술자로써 영어로는 DD(Deployment Descriptor) 이다. 이 파일은 WAS(Web Application Server)가 최초 구동될 때 즉 톰켓이 최초 구동될 때 web.xml을 읽고 그에 해당..

[SPRING] 스프링 기본 프로젝트 파일 분석 [내부링크]

1) src/main/java는 소스 코드가 모여있는 디렉토리. 2) src/main/resources는 스프링 설정파일이나 쿼리가 저장될 디렉토리 3) servlet-context.xml, root-context.xml 파일은 서블릿 관련 설정파일이다. 4) web..

[안드로이드] 캔버스를 이용한 원형차트 만들기 [내부링크]

위와같이 성공한 만큼 빨간색으로 표시해 주는 원형 그래프를 캔버스를 이용해 만들려고 한다. public class CircleChart extends View { ArrayList<WritingVO> writing; int x; int y; public CircleChart(Conte..

[안드로이드] 알람 및 알람 리시버 구현/ 특정 시간, 특정 요일에 울리게 하는 알람 [내부링크]

※ 재미로 만든 첫 어플의 기능 중 알람 시계 어플 처럼 지정한 요일에 지정한 시간에 알람을 울리게 하는 기능이 필요했다. 소스는 다음과 같다. 1.소스 코드 내에 알람을 설정하는 코드를 생성 setAlarm() 함수..

[오라클] SQL Plus를 이용한 대용량 데이터 export [내부링크]

이번에 일을 하면서 천만건이 넘는 자료를 임포트와 익스포트하다 보니 툴에서 지원하는 기능으로는 한계가 있었다. 그래서 export 는 sqlplus 를 이용하고 import는 sqlloader를 이용하여 작업하였다. sqlloader..

[오라클] SQL Loader 사용법 (.dat파일을 DB에 임포트 해보자) [내부링크]

이번에 엄청난 데이터를 받았다... 몇백만 건이 넘는 .dat파일 세개... 이럴때 바로 SQL Loader를 쓰면 엄청난 양의 데이터, 그리고 .dat확장자를 가진 데이터를 빠르고 쉽게 테이블에 삽입할 수 있다. ※ SQL Loa..

데이터베이스 유저 생성 및 DBA 권한주기 [내부링크]

1.유저생성 create user USERID identified by PW defualt tablespace users temporary tablespace temp; 2.DBA 권한주기 grant dba to USERID

NOT IN의 함정... 조건은 맞는데 데이터가 안나올때.. [내부링크]

문제의 쿼리... SELECT * FROM TABLE_NAME WHERE UPPER_CODE NOT IN ( SELECT UPPER_CODE FROM TABLE_NAME ) 이런식으로 두 UPPER_CODE라는 항목을 비교했는데 데이터를 일일이 비교해보고 조건이 맞는데도 IN은..

[안드로이드] 특정 Activity에서 다른 Activity의 ListView새로고침하기 [내부링크]

1.새로고침하고자 하는 Activity의 Context를 전역변수로 만들어 준다. public static Context CONTEXT; 2.onCreate 부분에서 Context의 값을 지정해준다. CONTEXT = this; 3.다른 Activity에서 위의 Context의 on..

[안드로이드] 스크롤뷰 스크롤 끝까지 내리기 [내부링크]

이런식으로 써줘야 동적으로 뷰를 추가한 레이아웃에도 스크롤이 끝까지 내려간다. scrollViewName.fullScroll(ScrollView.FOCUS_DOWN); 이부분 한줄만 사용한다면 뷰가 추가되기 전의 영역까지만 스크롤이 내려간..

[안드로이드] EditText 자동 포커스, 키보드 자동실행 막는법, 키보드 실행시 화면 사이즈 재설정 [내부링크]

레이아웃에 EditText가 있으면 자동 포커스, 키보드 자동실행이 된다. 또한 아래에서 키보드가 올라오면 레이아웃의 화면을 가리기때문에 키보드가 올라온 만큼 화면의 사이즈를 다시 설정해줄 필요가 있다. 1. Ed..

[안드로이드] Back(뒤로가기) 버튼 2번 터치시 앱 종료하기 [내부링크]

Back 버튼은 컨트롤 하는 메소드는 바로 onBackPressed()이다. 전역변수로 시간에 관한 변수들을 설정해 놓는다. private final long FINISH_INTERVAL_TIME = 2000; private long backPressedTime = 0; 그런 후 on..

[안드로이드] dp -> px / px -> dp로 변환하기 [내부링크]

※ 소스코드 내에서 dp 에서 px로 바꾸거나 px 에서 dp 로 바꿀때 //px -> dp public int fn_pxToDp(Context context, int px){ DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics(); in..

[안드로이드] dp, dip, sp, px의 차이 [내부링크]

※ 웹만 해보다가 안드로이드 퍼블을 맨처음 했을 때 위젯들의 크기를 px로 지정했다. 하지만 이런식으로 지정을하면 해상도가 다양한 핸드폰 화면에서는 내가 원하는 크기와 위치로 지정되지가 않는다. 그렇기 때..

[안드로이드] 레이아웃 중첩, 겹치기 삭제 [내부링크]

※ 아래 글에서 레이아웃을 중첩시켰으면 언젠간 중첩시킨것도 없애야 한다. 중첩된 레이아웃을 지우는 방법은 아래와 같다. (전) (후) LinearLayout ll = (LinearLayout)findViewById(R.id.삭제할_레이아웃_아이..

[안드로이드] 레이아웃 중첩, 겹치기 [내부링크]

※ 안드로이드 개발을 하다보면 alert dialog는 아닌데 지금 있는 레이아웃 위에 alert dialog처럼 보여줘야 할때가 있다. (dialog는 커스터마이징 해도 테두리를 없앨수가 없다. 그렇기 때문에 레이아웃을 겹쳐..

[안드로이드] dp, dip, sp, px의 차이 [내부링크]

※ 웹만 해보다가 안드로이드 퍼블을 맨처음 했을 때 위젯들의 크기를 px로 지정했다. 하지만 이런식으로 지정을하면 해상도가 다양한 핸드폰 화면에서는 내가 원하는 크기와 위치로 지정되지가 않는다. 그렇기 때..

좋은코드 작성법 [내부링크]

※ 다른사람의 코드를 보다보면 물흐르듯 쉽게 읽히는 코드가 있고 그렇지 않은 코드가 있다. 이런걸 직접느껴보니 코딩을 어떻게 하느냐가 정말 중요하다고 생각하던 찰나에 서점을 돌다 우연히 발견한 이책 박진..

개발자가 갖추어야할 9가지 기술 [내부링크]

해당 개발자가 게임 개발자 이므로 게임쪽으로 초점이 맞춰저 있을 수 있음. Hard Skils Basic Knowledge (언어, OS) Understanding for product (제품에 대한 이해) Development Cycle (개발 사이클) 1~5 years o..

나쁜 프로그래머가 되는 18가지 방법 [내부링크]

나쁜 프로그래머가 되는 18가지 방법 소프트웨어 개발자는 끊임없이 변화하면서 성장한다. 스스로 길을 잘 찾아서 성장하는 경우도 있고, 좋은 환경에서 개발을 하다 보니 자연스럽게 실력이 향상되기도 한다. 하..

[프로그래머 삶] 개발자는 왜 야근을 해서 소중한 시간을 버리는가? [내부링크]

‘프로그래머 삶’ 홈페이지에 게재된 글을 편집한 뒤 모비인사이드에서 한 번 더 소개합니다. 이미지: shutterstock 2012년에 웹서핑을 하다가 우연히 카페인에 중독된 미국 개발자 ‘러셀 볼’ 블로그에 들어가..

[자바스크립트]타이머 설정 [내부링크]

setTimeout(function(){ 변경사항 }, 3000); //(function(){ 변경사항}, 시간) function()함수가 3초후에 실행된다. 즉 3초후에 변경할 내용을 function함수 안에 작성하면 된다.

09. 환경파일, 보안관련 파일 관리 [내부링크]

※ Ignore 우리가 DB에 접속할 때 id와 pw를 알고 있어야 한다. 허나 이런 DB의 id와 pw는 외부에 노출이 되면 안된다. 하지만 이러한 환경설정을 해놓은 파일은 반드시 필요하다. 그래서 Github에 올릴때 Ignore..

08. 태그 [내부링크]

※ 태그란? 버전들 안에서도 의미있는 기념할만한 버전들이 있다. 그러한 것들을 별도로 관리하고 표시해 줘야한다. 이러한 것을 해주는 것이 태그이다. 태그를 이용해서 그 태그부터 시작하는 브랜치를 만들 수..

07. STASH [내부링크]

stash 1. (안전한 곳에) 넣어 두다 2. 챙겨 둔 양 무엇을 안전하게 넣어둘까?? 커밋하지 않은 아직 끝나지 않은 작업을 안전한 곳에 넣어둔다! ex) 아직 커밋하지 않은 내용을 임시로 저장해 두는 기능 예를들어..

06. 비교, 병합 외부 도구 연결 [내부링크]

소스트리에서 기본적으로 지원하는 비교,병합 툴은 보기가 너무 불편하다. 그래서 우리는 외부의 비교,병합 툴을 연결하여 사용 할 수 있는데 Git에서는 이러한 외부 툴을 diff라고 한다. 이러한 diff 의 종류로는..

05. 협업 [내부링크]

기존의 프로젝트를 다른사람과 협업하려할때 github에 있는 프로젝트를 다운받아야 된다. ※ 원격 저장소에 있는 프로젝트 로컬로 다운로드 받기(Clone/복제) ※ 협업시 소스를 수정하기 전에 해야할 사전작업 협..

04. 원격저장소 [내부링크]

※ 원격저장소의 종류 https://github.com/ (깃허브) https://about.gitlab.com/ (깃랩) ※ 원격저장소 만들기(github 기준) 1.github 페이지에서 원격저장소 만들기 2.소스트리에서 원격저장소와 연결하기 3...

03. 브랜치(Branch) [내부링크]

※ 브랜치란? 소프트웨어를 개발할 때에 개발자들은 동일한 소스코드를 함께 공유하고 다루게 됩니다. 동일한 소스코드 위에서 어떤 개발자는 버그를 수정하기도 하고 또 다른 개발자는 새로운 기능을 만들어 내기..

02. 되돌리기 [내부링크]

※ WorkingCopy Index Repository 새로 만든 파일들은 최초의 Commit 전에는 Git에서 관리해주지 않는다. 새 파일의 내용이 변하던 변하지 않던 그 파일은 그저 새 파일로만 간주 될 뿐이다. 소스 트리에서 Commit..

01-3. 버전 만들기(commit) [내부링크]

※ Git과 SVN에서의 커밋의 차이점 - 내가 그동안 써오던 SVN은 커밋을 하면 중앙Repository(서버)에 저장이 되었다. 하지만 Git에서 커밋은 중앙Repository가 아닌 내 PC 즉 로컬에 새 버전을 저장시키는 것이다...

01-2. 저장소 만들기 [내부링크]

※ 이렇게 저장소 Repository를 생성한 후 3번에서 선택한 폴더에 버전관리를할 파일을 넣어서 관리한다.

01-1. Git 기본 소개 [내부링크]

※ 버전 관리 시스템(Version Control System) = 형상관리, 소스관리 버전이란? - 의미있는 변화들(기능의 개선, 버그수정, 고객의 요구사항에 맞게 소프트웨어를 커스터마이징하여 제공했다 등등) 버전 관리 시스..

02. JSP/Servlet [내부링크]

JSP란? - 자바를 기반으로 하고 있는 스크립트 언어 JSP 특징 - 동적 웹 어플리케이션 컴포넌트 - .jsp 확장자 - 클라이언트의 요청에 동적으로 작동하고 응답은 html을 이용 - jsp는 서블릿으로 변환되어 실행 -..

01. 웹프로그래밍 [내부링크]

1.웹 기본개념 - 프로토콜 : 네트워크상에서 약속한 통신규약 (http, FTP, SMTP ... 등등) - IP : 네트워크상에서 컴퓨터를 식별할 수 있는 주소 - DNS : IP주소를 사람이 쉽게 외우도록 맵핑한 문자열 - 포트 : I..

[SPRING] 빈(Bean) 관련해서 오류가난다면? [내부링크]

- 빈관련 오류가 난다면 이클립스 프로젝트 아래에 Spring Elements에서 해당 빈이 생성됐는지, 어떻게 어디에 생성 됐는지를 확인해보자. 각각의 context마다 생성된 빈을 보여준다. 해당 빈이 생성된 위치라던가..

[SPRING SECURITY] 4.스프링 시큐리티 로그인 커스터마이징 [내부링크]

1) 커스터 마이징을 위한 .java, .jsp CustomAuthenticationProvider.java (DB에서 사용자 불러와 권한조회 하기) - <authentication-manager>에 추가한 클래스로써 권한확인 작업을 한 후 return result;를 하면..

[SPRING SECURITY] 3.스프링 시큐리티 로그인 커스터마이징 [내부링크]

1) 커스터 마이징을 위한 security-context.xml 속성들 - 스프링 시큐리티는 <form-login> 속성을 이용하면 해당 페이지에서 로그인 할 수 있도록 한다. login-page 로그인 페이지 주소를 지정 username-parameter..

[SPRING SECURITY] 2.스프링 시큐리티 security-context.xml 알아보기 [내부링크]

- 스프링 시큐리티는 어떤 웹페이지에 접속할 때에 접속자의 권한을 반드시 확인하고 권한에 맞는 페이지만 보여준다. 아래 예제를 보자, 이 예제는 구글링해서 찾은 security-context.xml의 예제이다. 간단히 예..

[SPRING SECURITY] 1.스프링 시큐리티 기본세팅 [내부링크]

1) 라이브러리 다운 - 스프링 시큐리티 라이브러리를 다운받아야 한다. 일반적인 스프링에서는 pom.xml에 다운받으려는 스프링 시큐리티 설정을 추가하면 된다. - 해당 설정은 스프링 공식홈페이지(https://spring..

[자바] 자바를 이용한 날짜처리 [내부링크]

String last_login_date ="2016-12-21 09:40:30" SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); //현재날짜 Date sysDate = new Date(); //비교하려는 날짜를 형변환 한다. Date lastL..

[자바스크립트]날짜 Date 타입 계산법 [내부링크]

자바스크립트를 이용한 날짜 계산법이다. var sysDate= new Date(); //현재 날짜 및 시간 alert(new Date(Date.parse(sysDate) - N * 1000 * 60 * 60 * 24)); // N일 전 alert(new Date(Date.parse(sysDate) + M *..

08-4 해싱 [내부링크]

※ 해싱(Hashing) - 해싱은 키값을 비교하여 검색하는 것이 아니라 산술적 연산을 이용하여 키가 있는 위치를 계산하여 바로 찾아가는 계산 방법이다. - 키값을 원소의 위치로 변환하는 함수를 해싱 함수(Hashing..

08-3 이진 트리 검색 [내부링크]

※ 이진 트리 검색(Binary Tree Search) - 이진 트리 검색은 이진 탐색 트리를 이용하여 검색하는 방법이다. - 이진 트리는 루트 노드의 왼쪽에는 루트노드보다 작은값, 오른쪽에는 루트노드보다 큰 값으로 되어있..

08-2 이진 검색 [내부링크]

※ 이진 검색(Binary Search) - 가운데에 있는 항목을 키값과 비교하여 키값이 더크면 오른쪽을 검색하고, 키값이 더 작으면 왼쪽 부분을 검색하는 방법이다. - 가운데 값을 기준으로 왼쪽과 오른쪽의 두 부분으로..

08-1 순차 검색 [내부링크]

※ 순차 검색(Sequential Search) - 일렬로 되어있는 자료를 처음부터 마지막까지 검색하는 방법 - 선형 검색(Linear Search)이라고도 한다. - 검색하는 양에 따라 효율이 달라진다. 자료의 양이 많아질수록 비효..

07-9 트리 정렬 [내부링크]

※ 트리 정렬(TreeSort) - 트리 정렬은 이진 탐색 트리를 이용하여 정렬하는 방법 - 정렬할 원소들을 이진 탐색 트리로 구성하고 중위 순회 방법을 사용하여 이진 탐색 트리의 원소들을 순회하여 꺼내온다. TreeS..

07-8 힙 정렬 [내부링크]

※ 힙 정렬(Heap Sort) - 힙 자료구조를 이용해 정렬하는 방법으로 정렬하려는 자료를 힙으로 만든 후 최대 힙이라면 제일 큰 수 부터 뒤에서 정렬하고 최소 힙이면 가장 작은 수 부터 앞으로 정렬시킨다. - 힙정..

07-7 기수 정렬 [내부링크]

※ 기수정렬(Radix Sort) - 분배 방식의 정렬 방법 - 정렬할 원소의 키값에 해당하는 버킷(bucket)에 원소를 분배하였다가 버킷의 순서대로 원소를 꺼내는 방법을 반복 - 원소의 키를 표현하는 값의 기수(radix)만..

07-6 병합 정렬 [내부링크]

※ 병합정렬(Merge Sort) - 분할, 정복, 결합의 순서로 이루어 지는 정렬 - 분할(divide) : 2개의 부분집합으로 분할 - 정복(conquer) : 부분집합의 원소들을 정렬한다. 부분집합의 크기가 충분히 작지 않으면 다..

07-5 셸 정렬 [내부링크]

※ 셸 정렬(Shell Sort) - 일정한 간격(interval)으로 떨어져 있는 자료들끼리 크기를 비교하여 교환 - 일정한 간격(interval)은 원소의 개수/2 를 하고 비교가 끝난 후에는 다시 간격(interval)/2를 해서 간격이..

07-4 삽입 정렬 [내부링크]

※ 삽입정렬(Insert Sort) - 정렬되어 있는 부분집합에 정렬할 새로운 원소의 위치를 찾아 삽입하는 방법. - 앞부분은 Sorted/ 뒷부분은 Unsorted로 되어있다. - 즉 맨앞의 원소로 부터 시작하여 오른쪽원소와 비..

07-3 퀵 정렬 [내부링크]

※ 퀵 정렬(Quick Sort) - 기준값을 중심으로 왼쪽 부분집합과 오른쪽 부분집합으로 분할(divide) 한다. 왼쪽 부분집합에는 기준값보다 작은 원소들을 이동시키고, 오른쪽으로는 기준값보다 큰 원소들을 이동시킨..

07-2 버블 정렬 [내부링크]

※ 버블 정렬(Bubble Sort) - 인접한 두개의 원소를 비교하여 자리를 교환하는 방식 ※ 구현 Main public class Main { public static void main(String[] args) { int a[] = {69,10,30,2,16,8,31,22}; BubbleSor..

07-1 선택 정렬 [내부링크]

※ 선택 정렬(Selection Sort) - 원소중 가장 작은 원소를 찾아 선택하여 첫번 째 원소와 교환한다. 그리고 두번째 작은 원소를 찾아 두번 째 자리의 원소와 교환한다. 이런식으로 길이 n인 배열의 n-1자리의 원소..

버스노선 검색 시스템 [내부링크]

공공 데이터를 이용하여 버스 정보를 받아와 브라우저위에 뿌려주는 시스템으로 스프링 프레임워크와 네이버 지도 API를 사용하였다. 공공 데이터는 데이터는 컨트롤러 단에서 URL을 통하여 받아온 XML 값을 XPath..

[얼굴 운동] 10년 어려지는 얼굴 운동 + 개구리 뒷다리 [내부링크]

요즘들어 부쩍 관리해야겠단 생각이 많이든다. 하루종일 멍때리면서 모니터를 봐서 그런지 얼굴이 흘러내리는 느낌도 종종들고 팔자주름도 한층 깊어졌다.... 한때 페북에서 한창 인기를 끌던 얼굴 어려지는 운동..

19-1. 마켓 [내부링크]

※ 앱 서명 - 앱의 마켓에 등록하기 위해서는 보안상의 이유로 앱을 서명해야 한다. - 앱마다 고유한 키값을 줘 다른 개발자가 나의 앱을 덮어쓰면서 배포하지 못하게함. - 키는 분실하면 추후 앱 업데이트가 안되..

18-1. 네트워크 [내부링크]

※ HttpURLConnection - url을 통해 데이터를 읽어온다. - 메인스레드가 아닌 별도의 스레드를 만들어 그 부분에서 데이터 다운로드가 작동되도록 한다. 메인스레드에서는 사용자와의 교감을 지속적으로 해줘야함...

17-1. 맵 [내부링크]

※ 맵을 이용하기 위한 설정 - 구글맵을 이용하기 위해서는 인증을 포함한 몇 가지 설정을 해야 한다. - 인증방법 Eclipse 실행 -> Widnow메뉴 -> Preferences -> Android -> Build -> SHA1 fingerprint의 값을 구..

16-1. 데이터 베이스 [내부링크]

※ SQLite - 안드로이드에서는 SQLite라는 경량급의 DB를 사용한다. 작은 디바이스에 최적회된 RDB로 기본적으로 안드로이드 프레임워크에 포함되어 있기 때문에 별도의 설치없이 사용할 수 있다. - 데이터베이스..

15-1. 데이터 [내부링크]

※ Files 디렉토리를 이용한 I/O - 영구적으로 관리해야 하는 데이터가 있을 경우 안드로이드에서 제공하는 files 폴더를 이용하여 데이터 관리를 할 수 있다. - 오른쪽 위 + 버튼(open perspective)을 누른 후 DD..

14-1. 브로드캐스트 리시버 [내부링크]

※ 브로드캐스트 리시버란? - BroadCast를 받는 기능 - 시스템은 여러가지 상황에서 다양한 메세지를 방송한다(BroadCast). 예를 들어 베터리 부족, 전원 공급장치 변화 , 네트워크 환경 변화 등등.... 이러한 시..

13-2. 스레드 [내부링크]

※ 루퍼(Looper) - 메세지를 핸들러에게 전달해 주는 기계 - 메인 스레드에는 루퍼가 존재하지만 새 스레드에는 루퍼가 존재하지 않는다. 그렇기 때문에 만약 새 스레드에서 핸들러를 사용하려면 루퍼를 구현해줘..

13-1. 스레드 [내부링크]

※ 멀티 스레드란? - 여러가지 일을 동시에 처리 할 수 있도록 해주는 것 - 실제로는 여러가지일을 동시에 하는 것이 아니라 여러가지 일을 왔다갔다 하면서 순서대로 해결하는 것이다. - 스레드에서는 UI 스레드..

12-2. 알람 [내부링크]

※ 알람의 종류 1회만 발생 주기적으로 발생(별도의 stop기능을 구현하지 않으면 지속적으로 울린다) ※ 구현 MainActivity public class MainActivity extends Activity { Button btnOneAlarm; Button btnCycleAl..

12-1. 노티(Notification)바 [내부링크]

※ Notification ? - 안드로이드 폰 최상단(상태바)에 표시되는 메시지 이다. 대표적으로 Message, Missed Call 등이 있다. 사진출처 : 서울위즈 앱 창업자를 위한 안드로이드 실무 동영상 ※ 구현 MainActivity..

11-3. 팝업대화상자 [내부링크]

※ ProgressBar ※ 구현 MainActivity public class MainActivity extends Activity { Button btn; ProgressDialog pd; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedIn..

11-2. 팝업대화상자 [내부링크]

※ CustomLayoutDialog - 커스텀 뷰는 레이아웃 xml 파일을 만들어서 안드로이드 기본 Alert Dialog 틀에 안의 형식만 바꿔준다. ※ 구현 MainActivity public class MainActivity extends Activity { Button btn;..

11-1. 팝업대화상자 [내부링크]

※Alert Dialog ※ 구현 MainActivity public class MainActivity extends Activity { Button btn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setCo..

10-1. 액션바 & 옵션메뉴 [내부링크]

※ 액션바 사진출처 : 서울위즈 앱 창업자를 위한 안드로이드 실무 동영상 ※ 옵션메뉴 사진출처 : 서울위즈 앱 창업자를 위한 안드로이드 실무 동영상 ※ 액션바와 옵션메뉴 구현 MainActivity public class Ma..

09-1. 프레그먼트 [내부링크]

※ 프레그먼트란? - 프레그먼트는 일종의 뷰이다. 하지만 액티비티 처럼 생명주기가 있다. 즉 생명주기가 있는 뷰이다. - 아래 이미지에서 왼쪽 프레그먼트와 오른쪽 프레그먼트를 나눠놨다. 버튼을 누를때마다 각..

08-1. 인텐트 [내부링크]

※ 인텐트란? - 액티비티 전환시 정보를 전달하기 위한 목적으로 만들어진 장치 - 인텐트를 이용하여 액티비티에서 웹사이트를 연결하거나 다른 어플을 실행하거나(ex 전화 다이얼, 전화 걸기, 연락처) 할 수 있다..

07-2. 액티비티 생명주기 테스트 및 로그 활용법 [내부링크]

※ 로그 사용법 - 로그창에서 내가 원하는 로그만 볼 수 있다. 특히 특정기능에 대한 로그만 알고싶다면 로그창에서 새로운 로그 태그를 만들어 놓으면 소스에서 로그 태그의 이름만 맞춰 준다면 LogCat창에서 해..

07-1. 액티비티 [내부링크]

※ 액티비티란? - 하나의 화면(뷰와 뷰그룹을 포함시키고 있다) 액티비티가 모여 하나의 어플리케이션이 된다 ※ 액티비티 제작 과정 엑티비티 레이아웃 제작 ex)ActivityMain Activity를 상속받아 엑티비티 파일(..

06-2. 이벤트를 이용한 드로잉 [내부링크]

※ 화면을 터치하여 앱의 기능을 구현해 보자 - 레이아웃에서 TextView나 Button 등은 모두 클래스이다. 그래서 우리가 CustomView 클래스를 만들어서 레이아웃에 적용시킬 수 있다(패키지명+클래스이름) 그렇기..

06-1. 이벤트 & 리스너 [내부링크]

※ 이벤트와 리스너 - GUI(버튼,라디오박스 등등)를 활용하여 이벤트를 발생시키고, 이벤트가 발생했을 때 리스너를 통해기능을 구현한다. ※ 뷰의 콜백 메소드 이벤트 @Override protected void onCreate(Bundle..

05-4. 어댑터 뷰 [내부링크]

※ GridView - 데이터를 표형식으로 출력 MainActivity.java public class MainActivity extends ActionBarActivity { private int[] data = { R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_lau..

05-3. 어댑터 뷰 [내부링크]

※ ListActivity - ListView를 포함하는 액티비티(화면)로 ListView를 생성하지 않고 Data와 Adapter만 있으면 리스트로 구현이 가능하다. 즉 layout을 만들지 않아도 리스트액티비티가 자동으로 생성이 된다는 말..

05-2. 어댑터 뷰 [내부링크]

※ 커스텀 뷰 - ListView를 구성하는 뷰를 개발자가 직접 만들어 사용한다. ※ 커스텀뷰 구현 소스 activity_main.xml (어댑터 뷰가 리스트를 보여줄 화면) <LinearLayout xmlns:android="http://schemas.android...

05-1. 어댑터 뷰 [내부링크]

※ 어댑터 & 어댑터 뷰? - 어떤 데이터를 이용하여 리스트를 보여줄 때 안드로이드 에서는 어댑터 뷰를 이용해서 보여준다. 어댑터 뷰는 데이터와 어댑터를 연결해주는 역할을 한다. 사진출처 : 서울위즈 앱 창업..

04. 커스텀 뷰 [내부링크]

※ 커스텀 뷰? 레이아웃 뷰 그룹을 이용하지 않고 View클래스를 상속 받아 직접 뷰를 만들어 사용하는 것 사진출처 : 서울위즈 앱 창업자를 위한 안드로이드 실무 동영상 커스텀뷰 예제 소스 public class MainAc..

03-2. 레이아웃 [내부링크]

※ RelativeLayout 위젯들 사이의 관계를 이용한 레이아웃 배치 사진출처 : 서울위즈 앱 창업자를 위한 안드로이드 실무 동영상 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xml..

03-1. 레이아웃 [내부링크]

※ 화면구성 요소 응용프로그램 - app프로그램 액티비티 - 한개의 화면 화면 뷰 - 액티비티안을 구성하는 하나의 요소 사진출처 : 서울위즈 앱 창업자를 위한 안드로이드 실무 동영상 ※ 뷰에 대한 이해 뷰(View)..

02. 안드로이드 프로젝트 [내부링크]

※ 에뮬레이터(AVD) 만들기 perspective -> 자바 선택 -> Window -> Android Virtual Divice Manager 클릭 -> 원하는 디바이스 생성 ※ 새 프로젝트 만들기 마우스 오른쪽 클릭 -> new -> Android Application Pro..

01. 안드로이드 개요 및 개발 환경 구축 [내부링크]

※ 안드로이드란? 모바일 OS의 한 종류 ※ 안드로이드 시스템의 종류 모바일웹 : 모바일환경에 최적화된 웹사이트 (마켓에서 다운받는것이 아니라 URL로 접속) 네이티브 - 우리가 일반적으로 생각하는 앱 (마켓에..

안드로이드 공부 시작! [내부링크]

이 게시판은 개인적으로 안드로이드를 공부하고 정리한 내용을 작성한 것입니다. 서울위즈의 앱 창업자를 위한 안드로이드 실무 동영상을 보고 공부하였습니다. 잘못된 내용의 지적은 매우 감사드립니다.

06-4 신장 트리와 최소 비용 신장 트리 [내부링크]

※ 신장트리(Spanning Tree) - 무방향 그래프 G에서 n개의 모든 정점과 n-1개의 간선으로 만들어진 트리 - 연결 그래프에서 순회를 하면 n-1개의 간선을 이동하면서 모든 정점을 방문하게 되므로 신장 트리를 생성..

06-3 그래프의 순회 [내부링크]

※ 순회 종류 깊이 우선 탐색 너비 우선 탐색 ※ 깊이 우선 탐색(DFS, Depth Frist Search) - 한 방향으로 갈 수 있을 가장 먼 경로까지 깊이 탐색해가다가 더 이상 갈 곳이 없으면 가장 마지막에 만났던 갈림길..

06-2 그래프의 구현 [내부링크]

※ 그래프의 구현 - 그래프를 구현하기 위해서는 정점에 대한 집합과 정점에 부속된 간선의 집합을 표현해야 한다. 순차 자료구조 방식을 이용하는 2차원 배열의 인접행렬 방법과 연결 자료구조 방식인 연결 리스..

06-1 그래프의 구조 [내부링크]

※ 그래프란? - 연결되어있는 원소간의 관계를 표현하는 자료구조. - 그래프는 연결할 객체를 나타내는 정점(vector)과 객체를 연결하는 간선(edge)의 집합으로 구성된다. 그래프는 G = (V,E)로 정의하는데 V는 그..

05-7 힙의 구현 [내부링크]

Main public class Main { public static void main(String[] args) { int n, item; MaxHeap h = new MaxHeap(); h.insertHeap(13); h.insertHeap(8); h.insertHeap(10); h.insertHeap(15); h.insertHeap(20); h.i..

05-6 힙 [내부링크]

※ 힙(heap) - 완전 이진 트리에 있는 노드 중에서 키값이 가장 큰 노드나 키값이가장 작은 노드를 찾기 위해 만든 자료구조. - 키값이 가장 큰 노드를 찾기 위한 힙을 최대 힙(Max Heap) : 부모 노드의 키값 >=..

05-5 이진 탐색 트리 구현 [내부링크]

BinarySearchTree public class BinarySearchTree { private Node root; public BinarySearchTree() { // TODO Auto-generated constructor stub root=null; } public void insertBST(char data){ Node newNode =..

05-4 이진 탐색 트리 [내부링크]

※ 이진 탐색 트리(Binary Search Tree) 란? - 이진 트리는 트리를 효율적으로 사용하기 위해 일정한 형태로 정의한 것. 탐색을 위한 자료구조로 이진 트리를 사용할 때 저장할 데이터의 크기에 따라 노드의 위치..

05-3 이진 트리의 구현 및 순회 [내부링크]

※ 순차 자료구조 방식을 이용한 이진 트리 구현 - 노드번호를 배열의 인덱스로 사용하여 1차원 배열로 표현한다. 아래 그림에서 보듯 완전 이진 트리나 포화 이진트리가 아니면 메모리의 낭비가 생긴다. **인덱..

05-2 이진 트리 [내부링크]

※ 이진 트리(Binary Tree) 모든 노드의 차수를 2 이하로 정의하여 전체 트리의 차수가 2 이하가 되도록 만든것. 이진 트리의 서브 트리들 역시 모두 이진 트리이다. 특정 노드를 기준으로 했을 때 왼쪽 트리 부..

05-1 트리 [내부링크]

리스트와 스택, 큐는 선의 형태로 나열되어 있는 구조를 가진 선형 자료구조(Linear Data Structure)였다. 선형이 아닌 자료구조를 비선형 자료구조라고 하는데, 트리(tree)는 비선형 자료구조 중에서 자료들 간의..

04-4 큐의 응용 [내부링크]

컴퓨터의 여러 분야에서 발생한 순서대로 문제를 해결해야 하는 경우 큐를 사용한다. 운영체제에서 실행을 요청한 작업들을 순서대로 처리하기 위해서 버퍼 큐와 프로세스 스케줄링 큐를 사용하고, 산업공학 등의..

04-3 큐의 구현(연결 자료구조 방식을 이용한 큐) [내부링크]

※ 순차 자료구조 방식의 단점 사용 크기가 제한되어 있다.(큐의 크기를 마음대로 변경할 수 없다) 원소가 없어도 항상 처음 크기를 유지해야 된다(메모리 낭비가 생긴다) 이러한 문제를 해결하기 위해 연결 자료..

04-2 큐의 구현(순차 자료구조를 이용한 큐) [내부링크]

※ 큐의 구현 배열을 사용하는 순차 자료구조 방식과 참조변수를 사용하는 연결 자료구조 방식이 있다. 초기 큐를 생성하면 rear와 front는 모두 -1이다. rear와 front 가 같으면 큐에는 값이 없는상태이다. 생성,..

04-1 큐(Queue) [내부링크]

※ 큐란? 스택과 다르게 한쪽에선 삽입연산이 일어나고 한쪽에서는 삭제연산이 일어나는 선입선출(FIFO, First In First Out)의 자료구조. 한쪽은 프론트(front)로 정하여 삭제연산만 수행하고 한쪽은 리어(rear)..

03-4 스택의 응용 [내부링크]

※ 역순 문자열 만들기 스택에 한 문자 단위로 잘라서 push했다가 pop을하면 문자열을 역으로 만들 수 있다. ※ 시스템 스택 프로그램 간의 호출과 복귀에 따른 수행 순서를 보면, 호출한 순서와 복귀하는 순서..

03-3 스택의 구현(연결 자료구조 방식) [내부링크]

※ 순차 자료구조를 이용해 구현한 스택과 차이점 배열을 사용하여 구현하기는 쉽지만 물리적 크기가 고정되어 있는 배열을 사용하기 때문에 스택의 크기를 변경하기 어렵고 물리적인 공간 낭비가 생길 수 있다...

03-2 스택의 구현(순차 자료구조) [내부링크]

※ 스택의 구현 순차 자료구조를 이용한 방식 연결 자료구조를 이용한 방식 ※ 순차 자료구조를 통한 구현 차원 배열 stack[n]을 사용할 때 n이 스택의 크기가 되며 top이 n보다 클 수 없다. 스택에 원소가 쌓이는..

03-1 스택 [내부링크]

※ 스택이란? 스택이란 자료구조는 top을 통해 자료가 순차적으로 쌓인다. 또한 top을 통해 순차적으로 출력된다. 그래서 가장 오래된 자료가 가장아래 쌓이고 가장 최신 자료가 제일 위에 쌓인다. 시간에 따라..

02-4 이중 연결 리스트 [내부링크]

※ 이중 연결 리스트 단순 연결 리스트는 선행 노드에 접근하기가 어렵다. 그래서 이를 개선하기 위해 원형 연결 리스트를 구성했다. 하지만 원형 연결 리스트에서도 현재 노드의 선행 노드에 접근하기 위해서는..

02-3 원형 연결 리스트 [내부링크]

※ 원형 연결 리스트(Circular Linked List)란? 연결 리스트의 구조를 원형으로 만든것 -> 마지막 노드의 링크를 첫번째 노드에 걸어준다. 단순 연결 리스트는 이전 노드에 접근하려면 노드를 다시 처음부터 순회..

02-2 단순 연결 리스트 [내부링크]

※ 전장에서 공부했든 연결리스트에 대한 기본 구조는 알고 있을 것이다. 노드를 만들 때 C에서는 link 부분을 포인터를 이용했지만 자바에서는 포인터대신 객체를 이용한다. ex) Node.link.link.link.link 의 방..

02-1 연결 자료구조 방식 [내부링크]

※ 연결 자료구조 방식 순차 자료구조 방식에서의 연산 시간에 대한 문제와 저장 공간에 대한 문제를 개선한 자료 표현 방식 순차 자료구조 방식에서의 문제점이란? 1. 순차 자료구조에서 배열이 갖고 있는 메모리..

01-2 다항식의 순차 자료구조 표현 [내부링크]

다항식이란? ex) P(x) = ax^n + bx^n-1 + cx^n-2 ..... zx^0 다항식을 선형리스트로 표현하려면 아래와 같은 형식으로 할 수 있다.<지수,계수>쌍을 2차원 배열에 저장한다. ex) P(x) = 3x^10 + 2x^3 - 6x + 7 [0]..

01-1. (순차)선형리스트의 기본과 구현 [내부링크]

※ 데이터를 구조화 시키는 가장 기본적인 방법은 나열하는 것이다. 이렇게 나열한 목록을 리스트라 한다. 자료구조에서는 데이터를 구조화시키는 기본 표현 방식으로 순차 자료구조 방식과 연결 자료구조 방식이..

자료구조 시작! [내부링크]

이 게시판은 개인적으로 자료구조를 공부하고 정리한 내용을 작성한 것입니다. 한빛아카데미/이지영 저자의 자바로 배우는 쉬운 자료구조를 통해 공부하였습니다. 한번만 하고 끝낼건 아니라 공부한 내용은 지속적..

01-3 행열의 순차 자료구조 표현 [내부링크]

※행렬이란? 행과 열로 구성된 자료구조 ※ 전치행렬 이란? 어떤 행렬에서 행과 열을 서로 교환하여 구성한 행렬 ex) ※ 희소행렬 이란? 행렬의 원소 대부분이 0인 행렬 이 행렬을 구현할때 0인 원소를 그대로 넣..