일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- java
- commit
- Class
- IntelliJ IDEA Community
- VCS
- svn
- Checkout
- error
- Android
- Subversion
- install
- Branch
- IntelliJ
- cherrypick
- 캡슐화
- TortoiseSVN
- 상속
- 자바
- SSL
- 생성자
- syntax
- terms
- sourcetree
- gradle
- intellij 연동
- 특징
- Android Studio
- constructor
- git
- 문법
- Today
- Total
목록All (52)
Jay's Developer Note
임시 비밀번호 생성 직접 구현해보기 이번엔 임시 비밀번호를 직접 구현해봤다. 로직은 의외로 간단하다. 1. 임시로 생성할 문자 배열 정의 2. 배열 범위만큼 난수를 발생 3. 난수로 문자 배열의 특정 인덱스 값을 가져옴 4. 요청한 길이만큼 반복 5. 랜덤 문자열 반환 소스코드 난수로 인덱스를 걸어 가져올 문자 배열 선언 private final char[] rndCharSet = new char[]{ '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', '..
임시 비밀번호 생성 라이브러리를 이용해 임시 비밀번호를 생성했다. 라이브러리는 apache 에서 제공하는 Apache Common Lang 이다. 라이브러리 추가 Gradle implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.12.0' Maven org.apache.commons commons-lang3 3.12.0 작성일 기준 최신 버전이 3.12.0 이었다. 더 자세한 내용과 다른 버전을 사용하려면 여기 로 가서 확인하면 된다. 사용방법 // 완전 랜덤으로 이뤄진 8개 문자열 반환 RandomStringUtils.random(8); // 랜덤 알파벳으로만 이뤄진 8개 문자열 반환 RandomStringUtils..
다국어 지원 하기 요즘 같은 글로벌 시대에 맞춰 애플리케이션은 다국어를 지원해야 한다. 그렇다면 다국어를 어떻게 관리해야할까? 글자가 들어가는 곳에 전부 분기 처리를....? 하는 미친 짓을 해서는 안된다.(절대!) 가만히 생각해보면 프로젝트를 처음 만들 때 mipmap 안에 기본적인 안드로이드 Launcher Icon 이 존재한다. DPI 별로 총 5개가 생성이 된다. 그렇다면 여기서 약간의 힌트를 얻을 수 있다. 글자를 관리하는 strings.xml 을 언어 별로 생성해 놓는다면?? 바로 정답이 되시겠다. 안드로이드는 디바이스에 설정된 Language 값에 따라 자동으로 언어를 맵핑하여 해당 언어에 맞는 strings.xml 파일을 읽어와서 UI 에 뿌려준다. 가장 먼저 다른 언어의 strings.x..
Build was configured to prefer settings repositories over project repositories but repository 'maven' was added by build file 'build.gradle' 발생원인 오픈 소스 라이브러리를 테스트하기 위해 새로운 프로젝트를 만들어서 라이브러리를 implementation 을 했다. Sync now 를 누르고 라이브러리를 써봤다. 안 된다..!!! project 단의 build.gradle 에 repository 를 추가 안 해줬다.(ㅎㅎ 머쓱 ㅎㅎ) 열었는데, 어.. 뭔가 내가 자주 보던 build.gradle 이랑.. 뭔가 많이 다른 모습이었다. 뭔가가 아주 많이 비어있었다.. 음.. 원래 repository..
상속(Inheritance) 상속(inheritance)은 아주 매력적이다. 우리가 흔히 알고 있는 부모-자식 간에 상속과 동일하게 생각할 수 있다. 부모는 자식에게 유전자를 물려줄 수 있고 재산도 물려줄 수 있고 자식은 물려받은 것들을 사용할 수 있다. 부모가 없이는 자식이 존재할 수 없으며 자식은 부모가 필히 한 개이어야 한다. 부모클래스는 상위클래스, 수퍼클래스라고도 불리고 자식클래스는 하위클래스, 서브클래스라고도 불린다. 부모와 자식은 1:N 관계가 되어야 한다. 사용방법 extends 를 사용하여 부모클래스를 상속받는다. [접근 제어자] class ClassName extends SuperClassName 부모클래스를 특정하지 않으면 Object 클래스를 상속받는다. [접근 제어자] class ..
캡슐화 & 은닉화 캡슐화와 은닉화는 단어처럼 캡슐 알약에 비교하면 이해하기 쉽다. 감기약의 성분을 환자(사용자)는 알 필요가 없다. 단지 알약을 물과 함께 삼키면 속에서 약효가 발휘된다. 이처럼 외부에서 내부의 내용을 알 수 없게 감싼 구조를 캡슐화했다라고 할 수 있다. 그렇다면 자연스레 은닉화도 같이 된 것이다. 예시 코드들을 보면서 한 번 더 이해 해보도록하자. 예시 1 class Car { // Bad public String model; public int maxSpeed; } 외부에서 '직접' 멤버 변수에 접근할 수 있기 때문에 캡슐화에 위배되는 코드다. 그렇다면 캡슐화를 적용하려면 어떻게 해야 할까? 멤버 변수들을 숨기고(은닉화) 접근할 수 있는 창구를 만들어주면 된다. class Car { ..
메소드(Method) 메소드(Method)는 클래스가 가지는 동적인 특성을 정의한다. 부르는 사람에 따라 메소드, 메서드 등 다양하게 불린다. 형식 [접근 제어자] [사용 방식] 리턴타입 메소드이름([매개 변수]...) { // 코드 } 생성자와는 다르게 리턴타입이 반드시 들어가야 한다. 접근 제어자 접근 제어자는 멤버 변수와 동일하게 적용된다. 사용 방식 사용방법 class Hyundai { public static void main(String[] args) { Car mCar = new Car(); mCar.model = "AVANTE"; mCar.print(); } } class Car { String model; public void print() { System.out.println("자동차 ..
멤버 변수(Member Variable) 멤버 변수는 클래스를 정의할 때 메소드 밖에 선언하는 변수로서 객체가 가지는 정적인 특성인 속성을 나타내는 데 사용한다. 형식 [접근 제어자] [사용 방식] 데이터형 변수명; 접근 제어자 : public, private, protected, default 사용 방식 : static, final 접근 제어자 접근 제어자를 통해 객체지향 언어의 특징 중 하나인 캡슐화와 정보 은닉을 설계할 수 있다. 사용방법 public class Hyundai { public static void main(String[] args) { Car mCar = new Car(); // public 멤버 변수이므로 어디서든 접근 가능 mCar.brand = "현대"; // default 멤..
생성자(Constructor) 생성자(Constructor)는 클래스로 객체를 생성할 때 객체의 초기화하는 특수한 메소드이다. 메소드와 비슷한 모습을 하고 있지만 조금 다른 생성자의 특징을 알아보겠다. 특징 - new 연산자와 같이 사용된다. - 이름에 걸맞게 객체 생성 시 사용된다. - 주로 객체 생성 시 객체의 멤버 변수를 초기화하는 역할을 한다. - 생성자의 네이밍은 클래스 이름과 동일해야만 한다. - return 타입이 없다. - 생성자가 없을 경우 JVM 이 자동으로 기본 생성자를 설정한다. - 사용자 정의 생성자가 있을 경우 기본 생성자는 없어진다.(기본 생성자를 함께 쓰려면 직접 기본 생성자를 추가해야 한다.) 형식 [접근 제어자] 생성자명(매개 변수) { // 코드 } 접근 제어자란 해당 ..
클래스(Class) Class 는 같은 모양을 찍어낼 수 있는 거푸집이라고 생각하면 된다. new 를 통해 Class 를 생성하게 되면 같은 속성, 같은 메소드를 가진 객체 변수를 무한대로 찍어낼 수 있다. 구조 // 클래스 선언부 class ClassName { // 클래스 멤버 // 생성자 public ClassName() { } // 멤버 변수 private String classVariable; // 메소드 public void setClassVariable(String classVariable) { this.classVariable = classVariable; } public String getClassVariable() { return this.classVariable; } // 내부 클래스..