JAVA공부 25

slice

JavaScript의 slice 메서드는 문자열과 배열에서 부분을 추출하기 위해 사용됩니다.slice는 원본 데이터는 변경하지 않고, 새로 잘라낸 데이터(문자열 또는 배열)를 반환합니다.문자열에서 slice문법string.slice(startIndex, endIndex)startIndex: 추출을 시작할 인덱스 (0부터 시작).endIndex: (옵션) 추출을 끝낼 인덱스 (이 인덱스는 포함되지 않음). 생략하면 문자열 끝까지 추출.특징음수를 사용할 경우, 문자열의 끝에서부터 계산.원본 문자열은 변경되지 않음.예제 const text = "JavaScript is awesome";console.log(text.slice(0, 10)); // "JavaScript" (0번째부터 9번째까지) console...

JAVA공부 2024.12.05

문자열 반복 출력

출력하는 방법은 4가지있는데 출력되는 형식이 다르기 때문에 그때그때 맞게 사용하면 됩니다. 1. for 반복문반복 횟수에 비례하여 메모리 사용량이 증가, 메모리 부족으로 인해 성능이 저하될 수 있음. for(var i=0; i 2. repeat( ) 메소드 사용console.log(str.repeat(n))  3. Array.join() 메소드 사용 Array 생성과 join() 메소드 호출 과정에서 오버헤드가 발생할 수 있음.console.log(Array(n + 1).join(str))strstrstr4.  process.stdout.write( )줄바꿈하지 않기 때문에, 메모리 사용량을 줄일 수 있음.for(var i=0; istrstrstr (적은) 메모리 사용량 (많은)4 process.stdo..

JAVA공부 2024.12.02

피자 나눠 먹기_Math.ceil

프로그래머스 문제)머쓱이네 피자가게는 피자를 일곱 조각으로 잘라 줍니다. 피자를 나눠먹을 사람의 수 n이 주어질 때, 모든 사람이 피자를 한 조각 이상 먹기 위해 필요한 피자의 수를 return 하는 solution 함수를 완성해보세요.제한사항1 ≤ n ≤ 100 function solution(n) { var pizza = 7; var answer = Math.ceil(n / pizza); // 올림하여 필요한 피자 판 수 계산 return answer;} 나눗셈 후 올림을 할 예정이라면 올림을 사용하는것이 적합하다. 주의Math.ceil은 항상 올림 방향으로만 작동합니다. 입력 값이 음수일 경우에도 큰 정수로 올림하기 때문에 결과는 절대값이 작아집니다. 예: Math.ceil(−4.8..

JAVA공부 2024.11.29

MySQL

Node.js에서 MySQL을 사용하기 위해 가장 먼저 만들어진 패키지입니다. 간단한 인터페이스와 다양한 기능을 제공하며, 현재도 많이 사용되고 있습니다. 특징:연결:동기화된 단일 연결을 지원하거나 연결 풀(pool)을 사용할 수 있음.콜백 기반:비동기 작업을 콜백(callback) 패턴으로 처리.속도:MySQL2보다 약간 느리다는 평이 있음(대규모 쿼리 처리 시).기능:기본적인 MySQL 기능을 지원(쿼리 실행, 연결 관리, 트랜잭션).기능 제한:최신 MySQL 기능이나 향상된 데이터 처리 방식은 부족.장점:간단하고, 작은 규모의 애플리케이션에 적합.안정적인 버전과 많은 사용자 기반.단점:최신 ES6(예: async/await)와 잘 어울리지 않음.최신 MySQL 기능 지원 부족.

JAVA공부 2024.11.27

MyBatis / ORM(JPA) / RDBMS 비교

항목MyBatisORM(JPA)RDBMS목적SQL 매핑 중심객체-테이블 매핑데이터 저장 및 관리 시스템SQL 사용 여부명시적으로 사용자동화되어 최소화SQL 필요유연성높은 SQL 유연성복잡한 SQL에는 제약SQL 표준으로 범용 사용 가능학습 곡선비교적 낮음높음데이터베이스별로 다름대표 사용 사례복잡한 쿼리나 DB 의존적인 프로젝트객체 중심의 애플리케이션모든 데이터베이스 기반 프로젝트 결론:MyBatis는 복잡한 SQL과 DB 중심의 작업에 적합.**ORM(JPA)**는 객체지향적인 설계와 간단한 CRUD 중심의 애플리케이션에 적합.RDBMS는 데이터베이스 자체로, 둘 모두 이 위에서 작동. 선택은 프로젝트 성격에 따라 결정됩니다.

JAVA공부 2024.11.26

RDBMS (Relational Database Management Systems)

RDBMS는 데이터를 관계형 모델로 관리하는 데이터베이스 관리 시스템입니다. 데이터를 테이블 형태로 저장하며,**SQL(Structured Query Language)**을 사용해 데이터를 조작합니다. 대표적인 RDBMS:Oracle: 강력한 성능과 확장성을 제공하며, 대규모 엔터프라이즈 환경에 적합.MySQL: 오픈소스 기반으로, 비교적 가볍고 빠르며 웹 애플리케이션에서 많이 사용됨.PostgreSQL: 객체-관계형 데이터베이스로, 확장성과 표준 준수에 강점.RDBMS의 주요 특징:데이터 무결성: 제약조건과 트랜잭션으로 데이터의 일관성 유지.SQL 표준 지원: 데이터를 질의, 삽입, 수정, 삭제할 수 있는 언어 제공.스키마 기반: 데이터 구조가 명확히 정의된 스키마 사용.

JAVA공부 2024.11.25

ORM (Object-Relational Mapping) - JPA

ORM은 데이터베이스의 테이블을 객체지향적으로 매핑하여, SQL을 직접 작성하지 않고도 데이터베이스와 상호작용할 수 있게 해주는 기법입니다.**JPA (Java Persistence API)**는 자바의 ORM 표준 스펙으로, Hibernate 같은 구현체를 통해 사용됩니다. 특징:객체 중심 개발: SQL 대신 객체를 통해 데이터베이스 작업을 처리.추상화: 테이블 대신 엔티티 객체로 데이터 관리.자동화: CRUD 작업을 위한 기본 SQL을 자동 생성.장점:SQL 작성이 불필요해 생산성이 높아짐.객체 중심의 개발로 가독성과 유지보수성이 높아짐.DBMS 변경에 유연함.단점:복잡한 SQL 쿼리에 비해 성능이 다소 떨어질 수 있음.초기 학습 곡선이 높음.DB 성능 최적화가 어려운 경우가 있음.

JAVA공부 2024.11.24

MyBatis

MyBatis는 자바 기반의 SQL 매퍼 프레임워크로,SQL 쿼리를 XML이나 애노테이션으로 관리하며데이터베이스와 자바 객체 간의 매핑을 처리합니다.ORM보다는 SQL을 개발자가 명시적으로 작성하고, 복잡한 쿼리 작업에 유리합니다. 특징:SQL 중심 개발: SQL을 XML 파일 또는 애노테이션으로 정의하여 데이터베이스와의 직접적인 상호작용 가능.자동 매핑: SQL 결과를 자바 객체와 매핑해주는 기능.유연성: 복잡한 쿼리 작성 및 DB별 최적화에 유리.명확성: SQL이 명시적으로 보이므로 쿼리를 추적하고 디버깅하기 쉬움.장점:복잡한 SQL 작성이 자유로움.SQL 최적화가 쉬움.데이터베이스 의존적인 애플리케이션에 적합.단점:SQL을 수동으로 작성해야 하므로 생산성이 ORM에 비해 낮을 수 있음.SQL 관리가..

JAVA공부 2024.11.23

문자열 출력하기

프로그래머스 문제) 문자열 str이 주어질 때, str을 출력하는 코드를 작성해 보세요. 제한사항1 ≤ str의 길이 ≤ 1,000,000str에는 공백이 없으며, 첫째 줄에 한 줄로만 주어집니다. 더보기//readline 모듈을 불러옴 //readline 모듈은 Node.js에서 콘솔을 통해 입력을 받을 때 사용 const readline = require('readline'); //readline 인터페이스를 생성 //입력과 출력을 설정하여 콘솔에서 데이터를 받을 수 있도록 함 const rl = readline.createInterface({     input: process.stdin,  // 표준 입력(콘솔 입력)을 통해 데이터를 받음     output: process.stdout // 표준 ..

JAVA공부 2024.11.22

최빈값 구하기

프로그래머스 문제)최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다.정수 배열 array가 매개변수로 주어질 때, 최빈값을 return 하도록 solution 함수를 완성해보세요.최빈값이 여러 개면 -1을 return 합니다.제한사항0  array의 길이 0 ≤ array의 원소 function solution(array) { var answer = 0; var count=new Map(); var result_array=[];//최빈값넣을 array var max=0; for(let i of array){ if(!count.has(i)){//i값이 없다면 count=0 count.set(i, 0); ..

JAVA공부 2024.11.21