자바 하드 코딩 - jaba hadeu koding

안녕하세요 정말 오랜만에 글을 작성합니다. 블로그 관리에 소홀해져서 글을 작성한지 엄청 오래 되었지만 제가 작성한 계획대로 잘 이행하고 있습니다 ㅎㅎ 

2021년 계획 및 나의 자기계발 목표

작년 이후로 블로그 관리를 소홀히 했음에도 불구하고 꾸준히 방문해주셔서 감사합니다! 앞으로 자주는 아니지만 가끔이라도 글을 작성해보도록 노력하겠습니다! 계획을 작성하기 앞서서 2021

kobalja2020.tistory.com

자바 하드 코딩 - jaba hadeu koding

이번에 간단하게 Properties 클래스 메서드의 종류 및 특징에 대하여 공부해보았고 get set만 사용을 해보았기 때문에 그거에 관해서만 간단히 정리하였으니 부족한 점이나 잘못된 설명이 있다면 댓글 달아주시길 부탁드리겠습니다.

#Properties 클래스 사용 이유

프로그래머로써 설정정보는 보통 하드코딩 하지 않습니다. (직접적으로 IP를 명시하거나 저장 경로 명시하지 않습니다.) 소스코드 영역 외에 저장하여 시스템 설정이 변경되었을 경우 시스템을 다시 컴파일 하는 행위를 막을 수 있기 때문입니다.

보통 자바에서는 properties 파일에 설정정보를 저장합니다.  그 중 특히 java.util.Properties 클래스는 프로그램 설정정보를 개발코드에 불러오거나 새로운 정보를 추가, 수정, 저장 할 수 있게 해줍니다.

Properties 클래스는 Hashtables의 하위 클래스이며, Hashtables를 상속 받았기 때문에(서브클래스) Map의 속성인 key와 values 를 String 형태로 가지고 있습니다. 또한 String 형태이기 때문에 get과 set, put 메서드를 제공합니다. 

#아래는 사용 예시입니다.(try catch 구문은 생략하였습니다.)

globals.properties 파일에서 first=one, second=two로 정하였습니다.

String value=(String)aPropertiesObject.get("first");

System.out.println("first is" + one);

String getvalue=properties.getProperty("second");

System.out.println(second);

properties.setProperty("second","Propertie class test");

#특징 정리

1. Properties 클래스는 Hashtables의 하위 클래스이며 상속 받았기 때문에 Map의 속성을 사용 할 수 있다.

2. HashMap과 비교하면 그렇게 차이점은 없지만 Properties 클래스는 파일 입출력을 지원한다.

3. key와 value 형식으로 작성된 프로퍼티 파일을 저장할 때 유용하다.

글 읽어주셔서 감사합니다. :)

자바 하드 코딩 - jaba hadeu koding
제 키보드와 마우스에요!

#아래는 제 바지 착샷이에요 ㅎㅎ 그냥 올려봤습니다.

자바 하드 코딩 - jaba hadeu koding
헤헤헤

이클립스(Eclipse)에서 파일 검색 시 특정 파일 및 폴더 제외하기

이클립스에서, 파일 검색 중 하나 인 Open Resource (Ctrl + Shift + R)을 사용 할 때 target 에 포함되어있는 파일까지 검색되어, 여간 걸리적 거리는게 아니었다. 해당 프로젝트 우클릭 후 프로퍼티에 들어간 다음, 리소스 안에 리소스 필터를 찾는다. Properties -> Resource -> Resource Filters을 열면, 아래와 같은 이미지가 나온다. 여기서 , Add Filter를 누른 후 Exclude all 체크 Folders 체크 아래, target을 입력을 하면, 파일 검색 시 target파일은 제외된다. 위 작업은, Spring Tool Suite 4 (4.5.1 RELEASE) 버전에서 작성된 것이며, 버전 및 Tool 종류에 따라 다를 수 있습니다.

자바 하드 코딩 - jaba hadeu koding

날코딩이라고도 하는 하드코딩은 엄청 간단한 개념인데

하드코딩의 뜻은 값을 고정시켜 놓는다는 거다

위 코드를 보면 hardCoding 메소드를 호출 시

return을 "하드코딩"; 으로 작성했기 때문에

뭔 값을 넣고 호출하건 간에 무조건 "하드코딩"을 리턴한다

반면 하드코딩의 반대말인 소프트코딩은

가변적인 값을 의미하는데

softCoding 메소드 호출 시에

어떤 값을 넣느냐에 따라

넣은 값을 그대로 반환하는 것이 보이는데

즉 소프트코딩이란

값이 고정되지 않고 가변적인 것을 말한다

하드코딩은 값을 고정시켜 놓는 것이기 때문에

상황에 따라 다양하게 값을 리턴해야 하는 경우

자연스럽게 문제가 생기기 때문에 해당 경우에는

하드코딩을 가변적인 소프트코딩으로 변경을 해 줘야한다

그리고 하드코딩 기준을 정확히 몰라

감이 오지 않을 수 있는데

값을 다른 곳에서 변경할 수 없도록

아예 고정시켜 놓으면 그게 하드코딩이고

거기서 끝이라고 보면 된다

마지막으로 예제에 사용한 코드는 아래와 같다

package pack1;

public class Java1 {
	
	// 하드코딩
	public String hardCoding(String val) {
		return "하드코딩";
	}
	
	// 소프트코딩
	public String softCoding(String val) {
		return val;
	}

	public static void main(String[] args) {
		Java1 j1 = new Java1();
		System.out.println(j1.hardCoding("아무거나 넣어도 return은 동일"));
		System.out.println(j1.hardCoding("값을 고정시켜 놓은게 하드코딩"));
		System.out.println(j1.softCoding("소프트코딩"));
		System.out.println(j1.softCoding("소프트코딩은 값이 가변적임"));
	}

}