Back-End (Web) 42

[JAVA] 객체지향 프로그래밍

객체지향객체지향은 자바에서 가장 중요한 기능 중 하나로 체계적인 프로그래밍을 가능하게 만들어준다. 사전적 의미로는, 현실 세계에서 어떠한 제품을 만들기 위해 부품들을 하나씩 조립해서 완성시키는 것처럼 소프트웨어 또한 필요한 부품들을 만들고 하나씩 조립해서 하나의 완성된 프로그램을 만들 수 있는데 이러한 기법을 ‘객체지향 프로그래밍’이라고 부른다. 단순히 말하면 기능, 혹은 데이터 별로 쪼개어 하나의 부품단위로 만들고 이를 잘 합쳐서 프로그램을 만든다 보면 된다. 객체객체란 세상에 존재하는 물체를 뜻하며 식별이 가능한 것을 말한다. 강하지, 반려동물, 자동차와 같이 물질적인 것 부터 개념적인 부분까지 식별이 가능하면 객체라 불릴 수 있다. 객체는 일정한 속성을 가지고 있으며 행동을 할 수 있다. 이처럼 현..

Back-End (Web)/JAVA 2024.11.12

[JAVA] 참조형 자료구조 정리(LIST / STACK / QUEUE / SET / MAP)

참조형 변수는 왜 쓸까?변수 선언에서 보통 참조형 변수가 사람의 머리를 가장 잘 쪼개주는데, 그냥 상자에 물건을 담는게 아니라 물건을 HEAP이라는 상자에 담고 STACK에는 HEAP이라는 상자의 위치(주소)를 저장해 버린다..  사실 생각해보면 이상하다. 그냥 값만 저장하면 1개만 저장하면 되는데, 뭐하러 주소와 값을 같이 저장해서 메모리 공간을 2배로 차지하는 것일까.. 하지만 여기에는 중요한 이유가 있다.  왜 이런 일이 발생했는지 간단히 설명해 보자면 '객체 지향 프로그래밍과 효율적인 메모리 관리를 위해서' 이다. 예를 들어보자 1. 효율적인 메모리 관리를 위해String str = "Hello"; 여기서 str 변수는 "Hello"라는 값을 직접 저장하는 것이 아니라, "Hello"라는 문자열이..

Back-End (Web)/JAVA 2024.11.11

[JAVA] 배열

배열은 수학에서 사용하는 배열을 프로그래밍적인 리스트의 형태로 구현한 것이다.간단히 말하면, 엘범이라 생각하면 좋다. 여러가지 사진을 각각의 다른 페이지에 넣어서 저장하는 엘범처럼배열도 각 변수를 하나의 상자안에 각각 넣어둔다. String[] weeks = {"월", "화", "수", "목", "금", "토", "일"}; 실제 위는 변수 선언인데, 이 경우 ['월' 이란 사진]을 에 담고 ['화' 라는 사진]을 에 담고 ~~~~  ['일' 라는 사진]을 에 담은 { weeks 라는 엘범 }을 만든다는 의미이다.더보기더 정확한 CS 식 표현은 weeks라는 이름의 String 타입의 배열을 선언한다배열 안에는 7가지의 문자를 추가한다각 문자는 하나의 연속된 메모리 공간에 데이터를 순서대로 저장한다문자는 ..

Back-End (Web)/JAVA 2024.11.11

[JAVA] 반복문

이전 글의 조건문과 다르게, 정말 기계 스러운 처리 방식도 존재한다. 기계의 발명은 사람이 하는 작업을 자동화 하고 반복되는 일을 대신하기 위해서 였다. 그 기능에 기반하여 나온 것이 바로 반복문이다. 단순히 정말 특정 코드를 반복해서 실행하는 간단한 코드이다. 예시로 for, while, do-while등이 존재하는데 이 3개의 대하여 알아보자 for 문특정 조건에 따라 연산을 반복해서 수행하고 싶을 때 사용하는 문맥입니다.for (초기값; 조건문; 증가연산) { (연산) } 형태로 사용합니다.특정 조건은 초기값과 조건문을 통해서 정의합니다.반복할 때마다 값을 증가시키려면 증가연산을 정의합니다.초기값이 조건문을 만족할 때까지 (연산)을 수행하면서 회차마다 증가연산을 수행합니다.// for 문for(in..

Back-End (Web)/JAVA 2024.11.11

[JAVA] 조건문

간단히 프로그램은 인간이 하는 말을 단조로운 언어로 번역해 기기에게 설명해 주는 것이라 말할 수 있다. 즉 프로그램이란 현실이나 이상을 구현하는 작업임으로, 그 체계는 인간의 언어를 기반으로 한다. 흔히 일상 생활에서 '~하면 ~하지' 와 같은 만약의 의미를 담는 조건문을 사용하는 경우가 많다. 어찌 보면 하나의 템플릿 처럼 사용될 정도로 자주 사용하는 문장인 만큼 프로그램에도 이 조건문을 정의해 두었다.if(조건)특정 조건에 따라 다른 연산을 수행하고 싶을 때 사용하는 문맥입니다.기본적인 조건에 따른 연산을 수행하기 위해 if(조건) { 연산 } 형태로 사용합니다.if의 소괄호() 안의 조건이 boolean 값 true를 만족하면 중괄호 {} 안의 연산을 수행합니다.if(조건)-else if(조건)if..

Back-End (Web)/JAVA 2024.11.11

[JAVA] 연산자

연산자와 피연산자계산할 때 계산의 대상이 되는 것이 피연산자 이며, 계산의 목적이 되는 것이 연산자입니다.연산자 : 덧셈, 뺄셈처럼 계산할 기호 ➕피연산자 : 연산자로 인해 계산되는 숫자 🔢연산자 종류 산술~논리 연산자는 비교적 간단히 설명이 가능하다 +(덧셈), - (뺄셈), *(곱셈), /(나눗셈/몫), % (나눗셈/나머지) > (크다) , (작다), >= (크거나 같다), (작거나 같다), == (같다), != (다르다) && (AND = 피연산자 모두 참), ||(OR = 피연산자 둘 중 하나라도 참), !(피연산자의 반대 boolean 값)대입 연산자 변수를 바로 연산해서 그 자리에서 저장하는 연산자// 대입 연산자int number = 10;number = number + 2;Syste..

Back-End (Web)/JAVA 2024.11.11

[JAVA] 변수와 변수 종류

프로그래밍에서 변수는 데이터를 저장하는 "이름이 있는 저장 공간"이다. 프로그램 실행 중에 특정 값을 저장하고, 필요할 때마다 그 값을 쉽게 불러오거나 변경할 수 있다.(상수는 변수와 비슷하지만 값이 변경이 안된다는 특징이 있다.) int number; // number 라는 이름의 int(숫자)타입의 저장공간을 선언String name; // name 이라는 이름의 String(문자열)타입의 저장공간을 선언  위의 상자 예시를 기준으로int는 상자의 종류(골판지인지 플라스틱인지)number는 상자 앞에있는 myNum처럼 닉네임10은 상자에 저장할 값이다.final int number = 10; // 1. 상수로 선언 (데이터 타입 앞에 final 을 붙이면 됩니다.) + 상수는 위와 같이 선언하면 된다..

Back-End (Web)/JAVA 2024.11.11

[JAVA] 자바 개발을 위한 준비물 IntelliJ

IntelliJ는 JetBrains에서 개발한 강력한 통합 개발 환경(IDE)으로, 특히 **Java 개발**에 최적화되어 있지만, 다양한 프로그래밍 언어와 프레임워크를 지원한다. IntelliJ IDEA(이하 IntelliJ)는 코드 작성부터 디버깅, 테스트, 배포까지 개발 과정 전반에 걸쳐 다양한 기능을 제공하여, 개발 생산성을 높이는 데 큰 도움을 준다.말이 어려워 보이지만, 프로그램이라는 그림을 그리기 위해 필요한 그림판이라고 보면된다. 다만 여러가지 유용한 기능이 있어 그림판 보다는 태블릿에 가깝다고 생각하면 좋다. 과거에는 이클립스라는 프로그램이 많이 사용되었지만 다양한 편의성과 기능으로 현재는 대부분의 웹 개발자가 IntelliJ를 사용하고 있다.  Java 프로그램(앱)의 시작점!Java ..

Back-End (Web)/JAVA 2024.11.11

[JAVA] JVM은 뭘까?

JVM (Java Virtual Machine)의 약자로 "자바 가상 머신"이라는 뜻이다.단순히 여러가지 기기위에 Java 프로그램을 실행 시킬 수 있는 가상의 기기를 만들어 준다.= 컴퓨터나 핸드폰이라고 해서 자바가 실행되는 것이 아닌, JVM을 통해 컴퓨터나 핸드폰 안에 java를 실행할 수 있는 가상의 기기를 추가해야한다.1. 프로그래머는 Java라는 인간이 이해할 수 있는 언어를 기반으로 프로그램을 제작한다.2. 자바는 운영체제가 이해할 수 있는 형태로 java 언어를 변환하기 위해 Java Compiler를 통해 바이트 코드(운영체제가 이해할 수 있는 언어 형태)로 변환한다.3. 바이트 언어를 또 기계가 이해할 수 있는 기계어로 번역해 줘야 기기들이 코드를 이해할 수 있는데, 이 번역해주는 부분..

Back-End (Web)/JAVA 2024.11.11

FIRE BASE 서버 통신

https://github.com/kyung412820/NoBase-Introduce GitHub - kyung412820/NoBase-IntroduceContribute to kyung412820/NoBase-Introduce development by creating an account on GitHub.github.com 구현에는 어제 학습했던 프론트엔드 관련 지식이 함유되었다.가장 기본이 되는 Java Script + HTML + CSS를 바탕으로 웹페이지의 화면과 이동을 구현하였다 대부분의 패널이 위와 같은 방식으로 구현되었지만, 이 프로젝트에서 가장 중요했던 부분은 역시 [ FIRE BASE ] 이 스텍 부분이였다. 파이어 베이스는 NoSQL을 기반으로한 데이터 베이스로, 구글에서 제공하는 데..

Back-End (Web) 2024.11.06