본문 바로가기
반응형

전체 글1072

변수명 짓기 꿀팁 프로그래밍을 하다보면 상당시간을 낭비하는 부분이 있다. 바로 변수명을 짓기 위함이다. 만약 간단한 코딩테스트나 심심풀이 코드라면 int i; String result; int sum; 등 사용을 하겠지만 만약 이렇게 간단한 단어가 아니라 업무상 필요한 언어나 프로젝트에서 사용되는 단어라면 작명하는것도 만만치 않다. 이런 부담을 좀 덜어주기 위한 사이트가 있다. https://www.curioustore.com/#!/ Curioustore 변수명 짓기, 컬럼명 짓기, 영어약자, 変数名 つけ方, カラム名建てる, 英語の略語, 命名变量, 命名该列, 英文缩写 www.curioustore.com 변수명을 지어주는 사이트로 들어가서 아무 단어를 입력해보면 추천 변수명이 나온다. 다양한 방법으로 변화가 되니 심심풀이로.. 2022. 7. 20.
Spring에서 Service와 ServiceImpl 를 나누는 이유(2022.07.19) 스프링에 대한 기본적인 이해는 있을 것이라는 전제하에, (만약 스프링에 대한 이해도가 없다면 아래 참고포스팅을 참고하여 스프링 예제를 한번 해보고 오는것을 추천한다.) service를 구현할때 service를 클래스로 구현할지, 아니면 interface로 구성 후에 implements 로 구현을 할지에 대한 고민을 한다. 하지만 요즘 코딩의 추세는 나누는것이 목적이다. 그 이유는 아래와 같다. Loose Coupling 객체 간의 결합도를 낮추어 변화에 유연한 개발을 하기 위해서이다. 하나의 인터페이스를 구현하는 여러 구현체가 있고 기능에 따라 적절한 구현체가 들어가서 다형성을 주기 위함이다. 또 하나의 인터페이스만 바라보니 의존관계도 줄일 수 있다. Spring 에서 JDK Dynamic Proxy 를.. 2022. 7. 18.
변수명 표기법 다양한 프로그래밍 언어들이 존재하지만 그들의 공통점들 중 하나는 변수를 사용한다는 것이다. 그럼 여기서 변수를 어떻게 표기하느냐. 이것도 중요한 문제이다. 물론 어떻게 쓰든 요즘엔 한글로 써도 되는정도의 다양한 인코딩방식과 표기법들이 존재한다. 하지만 Code Convention 상에서 정해진 룰, 규칙이라는것이 있다. 혼자 개발을 하고 취미로 개발을 한다면 자기 맘대로 변수명이나 클래스 명 등을 사용해도 무방하지만 여러명과 협업을 하거나 다른사람에게 알려주기 위한 코드로써는 정해진 틀에서 변수명을 사용하는것을 '권장' 한다. 프로그래밍 언어마다 조금은 차이가 있을순 있고 현재 포스팅은 자바 프로그래밍 언어의 기준으로 작성을 할것이다. 클래스명일 경우엔 첫글자는 대문자, 그리고 띄어쓰기나 언더바 구간은 .. 2022. 7. 18.
Spring Bean 이란? 스프링에는 다양한 특징이 있지만 그중 하나는 제어의 역전 IoC 이다. 제어의 역전에 관한 내용은 아래 참고 포스팅을 참조하면 이해하기 쉬울 것이다. 스프링 컨테이너에서 직접 객체를 관리 하게 되는데 이것을 빈(Bean)이라고 한다. 빈 등록은 다양한 방법이 있는데 @Component 애노테이션이 있으면 스프링 빈으로 자동 등록된다. 또한, @Component를 포함하는 @Controller, @Service, @Repository 애노테이션도 스프링 빈으로 자동 등록된다. 스프링에서는 다음과 같은 순서로 동작을 한다. 컨트롤러에서 @Controller 어노테이션을 사용하게 되면 자동으로 스프링 빈에 등록이 되고, controller 클래스에서는 서비스 호출을 위해 @Autowired 라는 어노테이션으로.. 2022. 7. 17.
이클립스 자바 버전 변경 이클립스를 사용하다보면 프로젝트 별로 자바 버전이 상이하게 해야할 필요가 있다. 그럴 경우에 자바 버전을 변경하는 법을 포스팅 해볼것이다. 이클립스 상단 메뉴 [Window] > [Preferences] 좌측 메뉴 [Java] > [Installed JREs] 현재 설치되어있고, 이클립스 내에서 인식이 되는 jdk, jre가 여기에 나타난다. 추가를 하려면 Add.. 를 클릭 한다. jre home 변경한다.(자바 설치된 폴더 bin, lib 폴더 말고 최상단 경로) 다음 finish 이렇게 추가가 되면 아래처럼 jdk.1.6.0 이 추가되어있다. 프로젝트의 자바의 경로를 잡았다면 프로젝트 자바 버전을 바꿔볼것이다. 프로젝트 위에서 우클릭 후 Properties 에 들어간다. 좌측 Project Face.. 2022. 7. 16.
jdbc URL 직접 개발을 하면서 다양한 DBMS 에 붙어서 사용을 하다보니 databaseconnect URL 주소가 너무 헷갈려서 직접 적어서 나중에 참고하려고 작성하는 포스팅이다. (계속 수정 예정) dbms class.forName jdbc urk oracle Class.forName("oracle.jdbc.driver.OracleDriver"); jdbc:oracle:thin:@127.0.0.1:1521:DBname mysql Class.forName("com.mysql.cj.jdbc.Driver"); jdbc:mysql://127.0.0.1:3306/DBname 2022. 7. 15.
API Gateway란? 요즘 인기있는 디자인 아키텍쳐 중에 가장 많이 언급되고 있는 MSA 를 알고 해당 포스팅을 보는것을 추천한다. 만약 MSA 에 대한 개념을 모른다면 아래 참고포스팅을 한번 보고 해당 포스팅을 읽어보는것을 추천한다. 다양한 서비스에 따라, 유저의 호출에 따라 불러와야할 서버들이 그림과 같이 다르다. 그럴 경우 api gateway는 중간에 껴서 적절한 서버를 request, response 해주는 역할을 한다. 물론 각각 요청별로 RESTTemplete 를 만들어도 되고 프록시 등 다양한 방법이 있지만 apigateway를 사용하게 되면 장점은 다음과 같다. 클라이언트의 요청을 일괄 처리 전체 시스템의 부하 분산 시키는 로드밸런서 역할 동일 요청에 대한 불필요한 반복작업을 캐시로 수행 시스템상을 오고가는 .. 2022. 7. 14.
Inbound, Outbound 개념 방화벽을 사용하게 될때 많이 접하는 단어이고 들어오는, 나가는 이라는 의미로도 쓰이는 Inbound 와 Outbound 이다. 이둘을 서로 비교해보면서 알아볼 것이다. 인바운드 아웃바운드 내부를 향하는 것 바깥으로 향하는 것 서버 내부로 들어오는 것 서버 바깥으로 나가는 것 서버 또는 네트워크 내부로 인입 서버 또는 네트워크 존 외부로 송출 클라이언트 -> 서버 서버 -> 클라이언트 클라이언트가 업로드 할 때 클라이언트가 다운로드 할 때 인바운드 규칙 아웃바운드 규칙 Window 방화벽 기본 설정 : 모든 접속 차단 Window 방화벽 기본 설정 : 모든 접속 허용 자신의 컴퓨터로 들어오기 시작하는 네트워크 데이터 자신의 컴퓨터에서 나가기 시작하는 네트워크 데이터 2022. 7. 13.
UPS 란? 시스템 장애의 원인으로 특히 많은것이 전원장애이다. 전원장애는 예기치 못한 정전이나 낙뢰 등으로 인한 과전압등 급격한 전원 환경의 변화에 서버가 대처하지 못함으로써 발생한다. 이런 전원 장애로부터 서버를 보호하는 기구가 UPS(무정전 전원 장치) 이다. UPS는 정전시에 서버를 안전하게 시스템 종료 시키거나 외부 전원과 서버 사이에 들어가 전원 환경을 조정하는 등 전원에 관한 여러가지 역할을 담당하고 있다. 정상적으로 서버가 종료되지 않으면 데이터가 파손되거나 하드웨어가 망가지는 경우를 방지할수 있고, 예비 배터리 역할을 하면서 문제가 발생시에 직원이 얼른 가서 조치를 취한다면 서버의 종료가 없이 계속해서 running 을 할수 있을 정도 예비 전력을 공급 함으로써 다양하게 전원 장애에 대한 방지를 대비.. 2022. 7. 12.
반응형