if문 중괄호를 생략하면?if문을 작성할 때, 중괄호{} 블록 내에 실행문이 하나밖에 없다면 중괄호를 생략할 수 있다.ealry return이나 단순 프린트(혹은 로깅)를 할 때 유용하게 사용되곤 하는데, 제대로 알지 못하고 사용하면 버그의 원인이 될 수 있다. boolean isTrue = true;// good caseif (isTrue) System.out.print("HELLO WORLD");// bad caseif (!isTrue) System.out.println("It's false!"); System.out.println("BYE WORLD"); 첫번째 케이스와 같이 if문에 실행문이 하나인 경우 "HELLO WORLD"를 출력하게 된다.하지만 두번째 케이스의 경우 의도와 다르게 "B..
Java
부호/증감 연산자부호 연산자연산식설명+피연산자피연산자의 부호 유지-피연산자피연산자의 부호 변경 정수 타입(byte, short, int) 연산의 결과는 int 타입이다. 부호를 변경하는 것도 연산이므로 int 타입 변수에 대입해야한다. 증감 연산자연산식설명++피연산자피연산자의 값을 1 증가시킴--피연산자피연산자의 값을 1 감소시킴피연산자++다른 연산을 수행한 후에 피연산자의 값을 1 증가시킴피연산자--다른 연산을 수행한 후에 피연산자의 값을 1 감소시킴 ❓for문 증감연산자는 왜 뒤에 ++이 붙을까?for문의 증감식은 블록 실행 후 루프가 "다시 조건식으로 돌아가기 전에" i값을 증감 시키는 역할을 한다.즉, 블록 실행 후 i를 증감시켜 다음 루프를 준비하는 것이다...만 for문 증감식에서 후위(i+..
변수 선언변수하나의 값을 저장할 수 있는 메모리 번지에 붙여진 이름자바의 변수는 처음에 선언된 타입 형태로만 저장할 수 있다. 변수명 규칙첫번째 글자는 문자여야한다. 특수문자는 '$', '_' 만 포함할 수 있다.중간부터는 숫자 및 허용된 특수문자를 사용할 수 있다.첫 문자는 소문자로 시작하되, CamelCase로 작성한다. 변수 선언과 초기화변수 선언저장되는 값의 타입과 이름만 결정한다. 메모리에는 할당되지 않는 상태int num; 변수 초기화변수에 최초로 값을 대입한다. 변수를 선언함과 동시에 대입할 수 있다.초기화 하지 않은 변수를 연산식에 대입할 경우 컴파일 에러가 발생한다.int num; // 변수 선언int value = 10; // 변수 초기화int result = num + value; ..
프로그래밍 언어와 자바Java의 특징모든 운영체제에서 실행 가능JVM(Java Virtual Machine) 위에서 실행되는 자바는 OS와 무관하게 모든 플랫폼에서 동작한다.객체 지향 프로그래밍(Object-Oriented Programming, OOP)메모리 자동 정리자바는 GC(Garbage Collection)가 메모리를 자동으로 관리해준다멀티스레드 지원무료 라이브러리 풍부 다른 언어와의 비교대표적으로 많이 사용되는 C++, Python과 비교해보자비교 항목JavaC++Python실행 환경JVM 위에서 실행OS에서 직접 컴파일하여 실행인터프리터 기반메모리 관리자동수동자동속도중간빠름느림난이도중간상대적으로 복잡쉬움주요 사용 분야기업용 백엔드, 모바일(Android), 금융 시스템 등게임, 임베디스 시스..

들어가며 회사에서 개발 중인 서비스가 통신하기 위한 서버가 특정 서버에서만 접근 가능한 상황이었다. 백그라운드에서 동작하는 (유저가 접근하지 않아도 되는) 어플리케이션은 그 특정 서버에 서비스를 띄워서 서로 통신이 가능한 방식을 사용하고 있었지만 개발 중인 서비스가 동작 중인 서버는 별도의 서버로 분리가 되어있었고, 이 서버는 정책상 특정 서버에서 인바운드가 막혀있는 상태였다. 조금 복잡한데 아무튼 개발 중 서비스 -> 타겟 서버로의 직접 접근이 안된다는 말이다. 이 문제를 해결하기 위해서는 타겟 서버로의 접속을 우회하는 방식을 사용해야하는데 이걸 SSH 터널링이라고 한다. 이번에는 SSH 터널링의 개념과 필요성, 구현 예시에 대해 작성해보고자 한다. SSH (Secure Shell) 시큐어 셸(Secu..
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify JSON.stringify() - JavaScript | MDN JSON.stringify() 메서드는 JavaScript 값이나 객체를 JSON 문자열로 변환합니다. 선택적으로, replacer를 함수로 전달할 경우 변환 전 값을 변형할 수 있고, 배열로 전달할 경우 지정한 속성만 결과에 포함 developer.mozilla.org 공공 api에서 가져온 유기동물 객체를 그대로 서버에 넘겨줘야하는 일이 생겼다. 이걸 Object 그대로 서버에 넘겨준 후 서버에서 파싱하는 방법이 있지만 이번에는 클라이언트단에서 JSON형태로 만들어 보내주기..

REST(REpresentational State Transfer)란? HTTP 통신에서 어떤 자원에 대한 CRUD 요청을 Resource와 Method로 표현하여 특정한 형태로 전달하는 방식 즉, REST란 어떤 자원에 대해 CRUD연산을 수행하기 위해 URI(Resource)로 요청을 보내는 것으로, POST / GET / PUT / DELETE / PATCH 등의 방식(Method)를 사용하여 요청을 보내며 요청을 위한 자원은 특정한 형태(Representation of Resource)으로 표현된다. 이러한 REST기반의 API를 웹으로 구현한 것이 REST API이다. REST의 구성요소 자원 (Resource) - URI 서버는 고유한 ID를 가지는 Resource를 가지고 있으며, 클라이언트..
싱글톤 패턴(Singleton Pattern)이란? 어떤 클래스가 최초 한번만 메모리를 할당하고(Static) 그 메모리에 객체를 만들어 사용하는 디자인 패턴을 의미한다. 즉, 인스턴스가 오직 1개만 생성되어야 하는 경우에, 클래스에 하나의 객체만을 생성해 이후에 호출된 곳에서는 생성된 객체를 반환하여 프로그램 전반에서 하나의 인스턴스만을 사용하게 하는 패턴이다. 싱글톤 패턴 생성 규칙 https://velog.io/@ednadev/%EC%9E%90%EB%B0%94-static-%EC%8B%B1%EA%B8%80%ED%86%A4-%ED%8C%A8%ED%84%B4singleton-pattern 자바 static - 싱글톤 패턴(singleton pattern) . . . . . static은 '클래스의', ..

https://ifuwanna.tistory.com/221 [Java] String, StringBuffer, StringBuilder 차이 및 장단점 Java 에서 문자열을 다루를 대표적인 클래스로 String , StringBuffer, StringBuilder 가 있습니다. 연산이 많지 않을때는 위에 나열된 어떤 클래스를 사용하더라도 이슈가 발생할 가능성은 거의 없습니다 ifuwanna.tistory.com String String과 StringBuffer/StringBuilder 클래스의 가장 큰 차이점은 String은 불변(immutable)의 속성을 갖는다는 점이다. String에 새로운 값을 추가하게 되면 기존의 값이 변경되는 것이 아니라 추가한 값은 새로운 메모리영역을 할당받고, 기존의 값..
JDK 8에 추가된 API로 함수형 인터페이스인 람다(lambda)를 활용할 수 있는 기술. 데이터를 추상화하고, 데이터를 다루는데 자주 사용되는 메서드를 정의한 API이다. 배열이나 컬렉션을 출력할 때, 코드를 간결하고 가독성있게 표현할 수 있는 API로 길게 늘어진 for문을 체이닝과 람다를 이용하여 보기 쉽게 정리할 수 있다. 이렇게 적어서는 잘 이해가 되지 않으므로 예제를 가지고 이해해보기로 했다! 2021.11.26 - [개발자가 될 때까지/JAVA] - [Java] 람다식 (Lambda Expression) [Java] 람다식 (Lambda Expression) [JAVA] 람다식(Lambda Expression) (tistory.com) [JAVA] 람다식(Lambda Expression) ..