본문 바로가기

Programming128

[JS] javascript의 함수 선언문과 함수 표현식 오늘은 간단하게 js 에서 함수를 사용하는 두가지 방법에 대해 정리해두려고한다. 함수 선언문 어디서든 호출이 가능함, javascript 내부 알고리즘에 의해서 javascript 실행 전 초기화 단계에서 코드의 모든 함수 선언문을 찾아서 생성해둠. sayHello(); function sayHello() { console.log('Hello!'); } 그렇기에 위 코드처럼 함수선언문보다 함수호출이 먼저나와도 정상적으로 실행되는 것임. (물론 함수선언문보다 코드가 아래에 나와도 동작한다.) 즉, 함수의 사용 가능 범위가 코드의 위치보다 위아래로 넓은데 이를 '호이스팅(hoisting)' 이라고 한다. 함수 표현식 코드를 한줄 한줄 읽으면서 코드에 도달할때 비로소 함수가 생성이 되고, 그 이후에 사용이 가.. 2022. 1. 22.
[JS] javascript 에서 함수 사용할 때, default 값 세팅하는 방법 하이. 오늘도 간단하게 javascript 에 대해 정리해 보고자 한다. 어떤 언어든 함수를 잘 활용하고 잘 작성하는 것은 중요하다. 함수는 과한 중복을 줄여주고, 프로그램의 응집도를 향상할 수 있는 수단이 되기 때문이다. javascript에서 함수를 작성할때 default값을 세팅하는 몇 가지를 정리해보았다. 1. OR 연산자 활용 function inputName(name) { let myName = name || '홍길동'; let msg = "입력된 이름은 " + myName + " 입니다."; console.log(msg); } inputName('뽀야'); inputName(); 위 코드 의 결과는 아래와 같다. 파라미터로 값이 입력되면 myName 파라미터 값이, 입력되지 않으면 디폴트 값.. 2022. 1. 22.
[JS] 명시적 형변환에 대하여 최근에 이직을 하면서 업무가 변경되어, 단순한 백엔드 쪽 API 개발뿐만아니라 프론트 쪽의 소스도 일부 수정하게 됐다. 특히 javascript 쪽을 건들일이 많을 것 같아서, 오래전의 기억을 살려서 하나씩 정리해보려고한다. 명시적 형변환 오늘 간단하게 정리해둘 내용은 명시적 형변환에 대한 내용이다. 얼마전에 후배한명이 자기가 구현한 소스가 뭐가 문제인지를 봐달라는 연락이 왔다. 아래 내용은 후배가 보낸 코드를 간단하게 만들어서 작성한 내용이다. const aHeight = prompt("a의 키?"); const bHeight = prompt("b의 키?"); const result = (aHeight + bHeight) / 2; alert(result); 코드는 아주 간단하다 . a의 키를 입력 받고.. 2022. 1. 22.
[java] Java 에서 Stream 사용하기 오늘은 Stream 을 사용하는 방법에 대해 쭉 정리를 해보고자 한다. Stream 생성하기 stream 은 두가지 방법으로 생성이 가능하다. Collection 으로 생성하기 // Collection(List) 로부터 스트림 생성 List collection = Arrays.asList("a", "b", "c", "e", "f"); Stream collectionStream = collection.stream(); Array로 생성하기 // 배열로부터 스트림을 생성 Stream arrayStream1 = Stream.of("a", "b", "c"); //가변인자 Stream arrayStream2 = Stream.of(new String[]{"a", "b", "c"}); Stream arrayStrea.. 2021. 11. 10.
[java] 함수형 인터페이스 예쩐에 포스팅에서 람다식에 대한 포스팅을 했었다. https://devkingdom.tistory.com/272?category=941391 [Java] 람다식 (Lambda Expression) 오늘은 람다식에 대해 간단하게 정리해두려고 한다. 람다식은 Java 8 부터 지원하는 객체지향 프로그래밍과는 다른 함수형 프로그래밍 방식이다. 람다식은 익명객체를 더 간단하게 줄여서 사용 devkingdom.tistory.com 위의 방식을 통해 람다식 표현이 가능하나, 기본적으로 java 같은 경우는 객체지향이라 순수함수와 일반함수를 다르게 보고 있다. 그러므로 이를 구분하기 위한 방법이 바로 함수형 인터페이스 이다. Java 에서는 기본적으로 4가지의 함수형 인터페이스를 제공한다. 1. Supplier Su.. 2021. 11. 4.
[Java] Generic 이해 하기 - Generic이란 하이.. 언어공부를 하다보면 한번쯤은 이 Generic에 의문을 가지는데, 오늘 한번 큰 마음 먹고 정리를 해보려고한다. 우리는 다양한 방식으로 Generic을 활용해 오고 있었다. 아래 예제 코드를 보자. List lists = new ArrayList(); HashMap map = new HashMap(); 우리는 개발할 때 괄호안에 들어가는 타입을 따로 정해준다. 만약에 저 리스트나 맵이 별도의 타입을 지원해주는 용도로 각각 만들어져 있다고 생각해보자. 그건 정말 비효율적인 내용이 되지 않을까 생각한다. ArrayList를 까보면 아래의 그림처럼 되어있는데, 괄호 안에 E 가 있다. E는 보통 Element를 의미한다. 이처럼 제네릭에서는 다양한 타입들을 약속해놓고 사용하는데 그 내용은 아래와 같다.. 2021. 10. 25.
[Java] Java Exception 처리하기 자바에서 에러나 예외 클래스의 계층 구조를 그려보면 위에 그려놓은 정보와 같다. 상위에 있는 Throwable 클래스를 기준으로 하여 Error 와 Exception 으로 나눠진다. Exception 은 또 컴파일 단계에서 발생할 수 있는 Checked Exception 과 실행 환경에서 발생할 수 있는 Unchecked Exception으로 나뉘어진다. 그리고 자바 같은경우에는 실행 시점에서 Error 가 날수도 Exception 이 발생할 수 도 있다. Error 에러가 발생하면 시스템이 비정상 종료된다든지 하는 비정상 상황이 생긴다. 대표적인 에러로는 메모리가 부족해서 생기는 OOM(Out Of Memory) Error 나 스택 영역의 메모리가 지정된 점위를 넘어갈 때 발생하는 Stack Overf.. 2021. 9. 15.
[Java] wait(), notifyAll() 를 활용한 스레드 동작 순서 제어 지난 포스팅에서 synchronized 키워드를 활용하여 동시성을 제어하는 걸 포스팅한적이 있다. https://devkingdom.tistory.com/276 [Java] 멀티 스레드 동시성 제어 하이 ..! 지난번 글에서 내가 멀티 스레드에 대해 포슽팅을 했었다. https://devkingdom.tistory.com/275 [Java] Multi Thread 처리 하이 오랜만에 글을 쓴다. 1.Thread란 오늘은 Java의 Thread 개념에 대해 다루.. devkingdom.tistory.com 오늘은 좀더 나아가서 Thread의 순서를 제어할 수 있는 방법을 정리해 보려고한다. 제어하는 방식은 wait()와 notifyAll() 을 활용하는 것이다. 아래 코드를 보면 vote 메서드와 vote.. 2021. 9. 9.
[Java] 객체 정렬하기 (Comparable 인터페이스 이용) 하이 .. 오늘은 자바에서 객체를 정렬하는 방법을 말씀드리려 한다. 예를 들어 키와 몸무게 정보를 가진 Player 클래스가 있다고 가정하자. 만약에 이 클래스의 키를 가지고 정렬을 하려면 아래와 같이 하면 된다. import java.util.ArrayList; import java.util.Collections; public class Temp1 { public static void main(String[] args) { ArrayList players = new ArrayList(); players.add(new Player(168, 62)); players.add(new Player(157,50)); players.add(new Player(182,70)); players.add(new Playe.. 2021. 9. 7.