📝 TIL

    [TIL] Java 메서드, 오버로딩, 재귀호출, 클래스

    ✍ Today I Learned [계산기 만들기] switch문에서 string을 이퀄 연산하는 건 자바 1.7 버전부터 가능하다. 연산을 한 첫 번째 숫자와 두 번째 숫자를 사용자에게 입력받고 연산자를 switch문으로 돌려서 간단하게 구현하였다. 여기서 로직이 추가된다면? case 절의 연산이 다른 곳에서도 필요하다면? 답은 메서드! [메서드 Method] 메서드(method)란? 어떠한 특정 작업을 수행하기 위한 명령문의 집합이다. 메서드를 사용하면 중복되는 코드를 줄일 수 있고, 모듈화로 인해 가독성도 좋아지고, 손쉽게 유지 보수할 수 있다. 메서드는 되도록 하나의 기능만 수행하는 것이 좋다. 메서드를 생성할 때는 항상 2가지를 생각한다. 1) 어떤 데이터를 파라미터로 전달할 건지 2) 어떤 데이..

    [TIL] Java 버블정렬, 선택정렬, 퀴즈파티

    ✍ Today I Learned [버블 정렬 Bubble Sort] 버블 정렬이란? 서로 인접한 두 원소의 대소를 비교하고, 조건에 맞지 않다면 자리를 교환하며 정렬하는 알고리즘이다. 시간 복잡도는 O(n^2), 공간 복잡도는 O(n)이다. 교환 연산(swap)이 많이 일어나기 때문에 비효율적이지만 구현이 매우 간단하고 직관적이다. 안정 정렬(Stable Sort)이다. 버블 정렬 참고자료 // 버블 정렬 int temp = 0; for (int i = 0; i intArr[j]) { // 왼쪽이 더 크다면 자리를 바꿔줌(swap) temp = intA..

    [TIL] Java 타입 변환, 연산자, 조건문, 반복문, 배열

    ✍ Today I Learned [타입 변환 Type Conversion] Casting이란? 데이터 타입을 변환하는 것이다. 형식과 크기가 다르기 때문에 변환이 필요할 때가 있다. 자바에는 2가지 유형의 Casting이 있다. Widening Casting (automatically) - 더 작은 유형을 더 큰 유형 크기로 변환(묵시적 형 변환) byte -> short -> (char) -> int -> long -> float -> double Narrowing Casting (manually) - 큰 유형을 작은 크기 유형으로 변환(명시적 형 변환) double -> float -> long -> int -> char -> short -> byte int num1 = 1, num2 = 4; dou..

    [TIL] Java 개발 환경 설정, 데이터 타입, 입출력

    ✍ Today I Learned 자바로 개발하기 위해서는 통합개발환경이 필요하다. (이클립스, 안드로이드 스튜디오) 통합개발환경에는 자바 컴파일이 포함되어 있지 않으므로 JDK라는 별도의 개발 도구를 설치해야 한다. JDK란? Java SDK(Software Development Kit)의 줄임말로 자바 개발 도구 모음을 의미한다. (자바 라이브러리, 컴파일러, JRE(JVM, Java Plugin, 유틸리티) 등을 포함) JVM이란? Java Virtual Machine의 줄임말로 자바 바이트코드를 해석하고 실행한다. 자바는 WORA(Write Once Run Anywhere)를 구현하기 위해 물리적인 머신과 별개의 가상 머신을 기반으로 동작하도록 설계되었다. 따라서 자바 바이트코드를 실행하고자 하는 ..

    [TIL] JS 제이쿼리 기본 문법

    ✍ Today I Learned 제이쿼리(jQuery)란? 자바스크립트 언어를 간편하게 사용할 수 있도록 단순화시킨 오픈 소스 기반의 자바스크립트 라이브러리이다. “write less, do more!” 자바스크립트의 코드를 간결하게 표현할 수 있어 굉장히 많이 사용되던 라이브러리지만 수행 속도 등의 문제로 현재는 걷어내는 추세이다. 제이쿼리를 적용하는 방법에는 2가지이다. CDN(Content Delivery Network)을 이용하는 방법 직접 다운받는 방법 Production version - 압축되어 있는 웹사이트용 Development version - 테스트 및 개발용 Slim version - 가볍지만 ajax 기능 없음 주로 head 태그 안쪽에 작성하거나, body 태그 안쪽 script..

    [TIL] JS 숫자 야구 게임 with 서버

    ✍ Today I Learned 브라우저에서만 저장되던 숫자 야구 게임을 fetch 함수로 비동기 서버 통신을 이용해 데이터베이스에 저장해보았다. 이전에는 Map 객체를 이용하여 유저의 데이터를 저장하였는데 접근성을 생각하며 Array + Object 조합으로 변경하였다. 서버에 전달할 유저의 객체 데이터는 다음과 같이 가공하였다. userObj = { name: 닉네임, description: 등급, price: 기록, category_id: 시도횟수, created: 게임종료시간 }; 닉네임은 게임 시작 전 사용자에게 입력받는다. 등급은 시도 횟수를 기준으로 1회 - S등급, 2~3회 - A등급, 4~5회 - B등급, 6~7회 C등급, 이후는 D등급으로 나누었다. 기록을 받는 price의 타입이 in..

    [TIL] JS fetch 비동기 통신을 이용한 CRUD

    ✍ Today I Learned [Read] 서버와 통신하여 가져오는 데이터의 개수를 알 수 없기 때문에 html의 item card를 미리 만들어 놓는 것이 아니라 1개의 card를 데이터 개수만큼 찍어내야 한다. 대략적인 흐름 [클라이언트가 서버에 데이터 요청 -> 서버가 데이터베이스에서 요청된 데이터를 받아옴 -> 그걸 string으로 클라이언트에게 보냄 -> 프론트에서 데이터의 개수만큼 html을 생성 -> 화면단에 출력] button 타입이 submit 일 경우 자동으로 페이지 이동이 되기 때문에 preventDefault() 메서드를 이용해 기본 속성을 막아주어야 한다. [Read - Detail] 비표준 속성(Non-Standard Attribute)이란? html 태그의 속성이 제한적이므로..

    [TIL] JS 콜백, 비동기, Promise, fetch, 서버 세팅

    ✍ Today I Learned 콜백 함수(Callback function)란? 다른 함수에 인수로 전달되는 함수이다. 콜백 함수는 다른 함수가 완료된 이후에 실행된다. (이때 괄호는 사용하지 않는다.) 외부 리소스를 로드하는 함수를 생성하면 완전히 로드되기 전까지는 그 콘텐츠를 사용할 수 없다. 이럴 때 콜백 함수를 사용한다. Promise 객체란? 실행에 시간이 걸리는 코드와 결과를 기다려야 하는 코드를 연결해주는 객체이다. 데이터 통신에 사용된다. let myPromise = new Promise(function(myResolve, myReject) { // "Producing Code" (May take some time) myResolve(); // when successful myReject(..