본문 바로가기

전체 글332

리액트 소개와 특징 ㅁ 리액트란 - 사용자 인터페이스(UI)를 효율적으로 만들기 위한 컴포넌트 기반의 자바스크립트 라이브러리다. - 웹에서 동작하는 프로그램(즉, 웹 애플리케이션)을 만들기 위해 탄생한 자바스크립트 라이브러리다.- 페이스북에서 만들었다.- 리액트는 자바스크립트 라이브러리이기 때문에 리액트를 사용하려면 자바스크립트를 알아야 한다. - 라이브러리는 특정 기능을 수행하는 코드들의 집합으로, 개발 시 필요한 기능을 직접 호출해서 사용할 수 있다.  ㅁ 왜 리액트를 사용하는가 - 리액트는 자바스크립트를 기반으로 만들어진 라이브러리다.그래서 자바스크립트로 구현해야할 웹의 기능을 편리한 도구와 특화된 구조 안에서 만들 수 있다. - 리액트는 태생 자체가 웹 애플리케이션 구축을 목적으로 만들어진 라이브러리기 때문에, 웹 .. 2025. 3. 7.
아무리 좋은 게 나와도 React를 이길 수 없는 이유 + 취준생이 Vue, Svelte, Angular를 배우면 안 되는 이유 출처 : https://youtu.be/WRvd29xF8dc?si=2xl50av6NP9cj9En    ㅁ Vue, Svelte, Solid, Preact 등 새로운 프론트엔드 프레임워크, 라이브러리들이 계속 나오는데 나올 때마다 저것들을 배워야 하냐. - 그냥 React를 하세요. 다른거 아예 신경쓰지말고 리액트를 하세요.- 리액트가 10년째 대세다.   ㅁ 왜 다른 것들이 리액트를 이기지 못하는가.(1) 프론트엔드 쪽은 기술이 그렇게 빠르게 바뀌지 않는다. - 반발하실 수 있는데 그럼 증거를 대보세요. 리액트 나온지 12년 됐는데 계속 1등이었다. 10년동안 썼다. - 프론트엔드에서 새로운 기술들이 많이 나오는 것은 맞는데 그게 대세가 되진 않고 거의 다 사라집니다. 대세인 기술은 10년, 진짜 길면 .. 2025. 3. 1.
JPA와 ORM 기본 개념 ㅁ ORM이란?- ORM(Object-Relational Mapping)이란 자바의 객체와 관계형 데이터베이스를 맵핑하는 기술으로, DB의 특정 테이블이 자바의 객체로 맵핑되어 SQL문을 일일이 작성하지 않고 객체로 구현할 수 있도록 하는 프레임워크입니다.    ㅁ JPA란? - Java Persistence API로, 자바에서 사용하는 ORM(Object-Relational Mapping) 기술 표준으로 사용되는 인터페이스 모음이다.- JPA는 자바의 ORM기술을 쉽게 구현하도록 도와주는 API이다.- JPA는 자바 애플리케이션과 JDBC 사이에서 동작한다. - JPA(Java Persistence API)는 자바 애플리케이션에서 관계형 데이터베이스를 객체 지향적으로 다룰 수 있도록 도와주는 ORM(O.. 2025. 2. 25.
[코테/0레벨] 문자열 붙여서 출력하기 ㅁ 내 풀이 import java.util.Scanner;public class Solution { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String a = sc.next(); String b = sc.next(); System.out.println((a+b).replace(" ", "")); }}   ㅁ 다른 풀이  import java.util.Scanner;public class Solution { public static void main(String[] args) { Scanner sc = new Sca.. 2025. 2. 23.
[코테/0레벨] n의 배수 ㅁ 내 풀이  class Solution { public int solution(int num, int n) { return num%n == 0 ? 1 : 0; }} 2025. 2. 23.
[코테/0레벨] 더 크게 합치기 ㅁ 내 풀이 class Solution { public int solution(int a, int b) { int first = Integer.parseInt(String.valueOf(a) + String.valueOf(b)); int second = Integer.parseInt(String.valueOf(b) + String.valueOf(a)); return first>second ? first : second; }}    ㅁ 다른 풀이 class Solution { public int solution(int a, int b) { int first = Integer.par.. 2025. 2. 23.
[코테/0레벨] 이어 붙인 수 ㅁ 내 풀이  class Solution { public int solution(int[] num_list) { String odd = ""; String even = ""; for(int a : num_list){ if(a%2 == 1){ odd += a; }else { even += a; } } return Integer.parseInt(odd) + Integer.parseInt(even); }} 2025. 2. 23.
[코테/0레벨] 두 수의 연산값 비교하기 ㅁ 내 풀이 class Solution { public int solution(int a, int b) { String first1 = String.valueOf(a) + String.valueOf(b); int first2 = Integer.parseInt(first1); int second = 2 * a * b; if(first2 == second){ return first2; }else{ return Math.max(first2, second); } }}   ㅁ 다른 풀이 class Solution { public int sol.. 2025. 2. 11.
[코테/0레벨] 0 떼기 ㅁ 내 풀이 class Solution { public String solution(String n_str) { String[] sArr = new String[n_str.length()]; sArr = n_str.split(""); String answer = ""; boolean flag = false; for(int i=0; i  - 문자열을 split 메소드로 문자열 배열로 분할하고, 반복문 돌렸음.- flag 변수를 둬서 "0"이 아닌 문자열이 나오면 그때부터 String형 변수 answer에 담아서 반환함.    ㅁ 다른 풀이 class Solution { publ.. 2025. 2. 11.
[코테/0레벨] A 강조하기 ㅁ 내 풀이 class Solution { public String solution(String myString) { String answer = ""; for(int i=0; i 65 && myString.charAt(i)    ※ char형 대소문자 변환 방법- Character.toLowerCase(char형);- Character.toUpperCase(char형);  ※ 대소문자 아스키코드- A ~ Z : 65 ~ 90- a ~ z : 97 ~ 122    ㅁ 다른 풀이 class Solution { public String solution(String myString) { myString = myString.toLowe.. 2025. 2. 11.
[코테/0레벨] 특정한 문자를 대문자로 바꾸기 ㅁ 내 풀이 class Solution { public String solution(String my_string, String alp) { String[] sArr = new String[my_string.length()]; sArr = my_string.split(""); for(int i=0; i  - split("")으로 문자열을 문자열 배열로 분할했다.- charAt으로 하나하나 뽑고 equals()가 아닌 == 연산자로 비교할 수도 있음.빈 문자열에 반복문으로 하나씩 더해서 반환. - join() 메서드를 사용하여 문자열 배열을 문자열로 변환할 수 있다.join() 메서드는 두 개의 인수를 가진다.첫 번째 인수는 문자열의 .. 2025. 2. 11.
[코테/0레벨] 문자열 곱하기 ㅁ 내 풀이  class Solution { public String solution(String my_string, int k) { String answer = ""; for(int i=0; i   ㅁ 다른 풀이 class Solution { public String solution(String my_string, int k) { return my_string.repeat(k); }}  - String.repeat() 메소드는 String 메서드 중 하나로 String 문자열을 파라미터의 주어진 횟수만큼 반복한다.java11에서 새로 추가된 String 메서드이다. 2025. 2. 11.
[코테/0레벨] 자릿수 더하기 ㅁ 내 풀이 class Solution { public int solution(int n) { String s = String.valueOf(n); String[] sArr = s.split(""); int answer = 0; for(int i=0; i  - 정수 n을 문자열로 변환 후, split으로 문자열 배열로 나누었다.   ※ String을 int로 변환- Integer.parseInt(문자열) // int 반환.- Integer.valueOf(문자열) // Integer 객체를 반환, 그러나 오토언박싱되어 int형 변수에 바로 할당 가능.  ※ int를 String로 변환- Integer.toString(int.. 2025. 2. 11.
[코테/0레벨] 문자열 뒤집기 ㅁ 내 풀이 class Solution { public String solution(String my_string) { String answer = ""; for(int i=my_string.length(); i>0; i--){ answer += my_string.charAt(i-1); } return answer; }}   ㅁ 다른 풀이 import java.util.*;class Solution { public String solution(String my_string) { StringBuilder sb = new StringBuilder(); .. 2025. 2. 7.
[코테/0레벨] 특정 문자 제거하기 ㅁ 틀린 풀이  class Solution { public String solution(String my_string, String letter) { return my_string.replace("letter", ""); }} - letter를 따옴표를 감싸면 진짜로 "letter"라는 문자열을 교체함. 따옴표를 떼야 한다.    ㅁ 내 풀이  class Solution { public String solution(String my_string, String letter) { return my_string.replace(letter, ""); }} 2025. 2. 3.
[코테/0레벨] 모음 제거 ㅁ 틀린 풀이 class Solution { public String solution(String my_string) { my_string.replace("a", ""); my_string.replace("e", ""); my_string.replace("i", ""); my_string.replace("o", ""); my_string.replace("u", ""); return my_string; }}  - String 클래스는 불변(immutable) 객체이므로, 한 번 생성된 String 객체는 변경할 수 없다.- replace.. 2025. 2. 3.
[코테/0레벨] 세균 증식 ㅁ 내 풀이 class Solution { public int solution(int n, int t) { for(int i=0; i 2025. 2. 3.
[코테/0레벨] 편지 ㅁ 내 풀이 class Solution { public int solution(String message) { return 2*message.length(); }} 2025. 2. 3.
[코테/0레벨] 최댓값 만들기 (1) ㅁ 내 풀이 class Solution { public int solution(int[] numbers) { int first = 0; for(int i=0; i    ㅁ 다른 풀이 import java.util.*;class Solution { public int solution(int[] numbers) { int answer = 0; Arrays.sort(numbers); return numbers[numbers.length-1]*numbers[numbers.length-2]; }} 2025. 2. 3.
[코테/0레벨] 배열 뒤집기 ㅁ 내 풀이 class Solution { public int[] solution(int[] num_list) { int[] answer = new int[num_list.length]; int num = num_list.length - 1; for(int i=0; i  ㅁ 다른 풀이 class Solution { public int[] solution(int[] num_list) { int[] answer = new int[num_list.length]; for(int i = 0; i - 후위 증감연산자 대신 1씩 증가하는 i를 사용한 풀이. 2025. 1. 31.
[코테/0레벨] 문자열 안에 문자열 ㅁ 내 풀이 class Solution { public int solution(String str1, String str2) { int num = 2; if(str1.contains(str2)){ num = 1; } return num; }}   ㅁ 더 나은 풀이 class Solution { public int solution(String str1, String str2) { return (str1.contains(str2)? 1: 2); }} 2025. 1. 31.
[코테/0레벨] 배열 원소의 길이 class Solution { public int[] solution(String[] strlist) { int[] answer = new int[strlist.length]; for(int i=0; i   ㅁ 자바 배열 선언법     ㅁ 자바 문자열(String) 길이 구하기   - 문자열의 길이를 구하기 위해서는 java.lang.String 클래스의 length() 메소드를 사용합니다.- length() 메소드는 문자열의 길이(16bit Unicode character 갯수)를 리턴합니다. 2025. 1. 31.
[코테/0레벨] 특별한 이차원 배열 1 ㅁ 최초풀이 class Solution { public int[][] solution(int n) { int[][] answer = new int[n][n]; for(int i=0; i    ㅁ 최종풀이 class Solution { public int[][] solution(int n) { int[][] answer = new int[n][n]; for(int i = 0 ; i 2025. 1. 22.
[코테/0레벨] ad 제거하기 class Solution { public String[] solution(String[] strArr) { int num = 0; for(int i=0; i  - newArr[i]를 하면 ArrayIndexOutOfBoundsException이 발생한다.그래서 0부터 시작하는 새로운 인덱스를 주고 증감연산자를 사용했다. 2025. 1. 22.
[코테/0레벨] ★ 구슬을 나누는 경우의 수 ㅁ 최초 풀이 class Solution { public int solution(int balls, int share) { int child = 1; for(int i = 1; i   - int형이어서 팩토리얼의 계산 결과가 큰 수면 제대로 계산되지 않음.- long형도 한계가 있어서 BigInteger를 사용했다.      ㅁ 최종 풀이  import java.math.BigInteger;class Solution { public BigInteger solution(int balls, int share) { BigInteger child = new BigInteger("1"); for(.. 2025. 1. 22.
피자 나눠 먹기 (3) class Solution { public int solution(int slice, int n) { int pizza = 0; if(n%slice == 0){ pizza = n/slice; }else{ pizza = n/slice + 1; } return pizza; }} 2025. 1. 19.
배열의 유사도 class Solution { public int solution(String[] s1, String[] s2) { int num = 0; for(int i=0; i 2025. 1. 19.
삼각형의 완성조건 (1) class Solution { public int solution(int[] sides) { int max = 0; int sum = 0; for(int i=0; i 2025. 1. 19.
5. 프로젝트 젠킨스로 배포 해보기 ㅁ 젠킨스- 젠킨스는 소프트웨어 빌드, 테스트, 배포를 자동화하는 오픈소스 CI/CD 도구입니다.     - 인스턴스 기존거는 선생님이 다 삭제했다.- 새로 만들어서 해본다. 인스턴스 시작을 누른다.  - 빌드할때는 꼭 도커 안써도 된다. 컨테이너 안쓰고 그냥 배포해도 된다.근데 그런 환경 구축하는게 훨씬 편하니까 도커를 설치한거다.    - 인스턴스 이름에 lsw-gdcampus-svr을 줬다.    - os는 우분투, ami는 2번째꺼 22.04를 선택했다.    - 이창이 뜨는데 그냥 변경 확인 누른다.    - 인스턴스 유형은 기본으로 선택되어 있는 t2.micro를 한다. - 새 키 페어 생성을 누른다.     - 키 페어 이름으로 lsw-gd-keypair를 줬다.- 키 페어 유형은 RSA, .. 2024. 12. 11.
4. 젠킨스로 배포 [6일차]  - 오늘은 어제 하던거 이어서 CI/CD하고 여러분 소스가지고 해볼거에요.       - ftp에서 저 2개를 가지고 왔다.      - aws ec2만들고나면 업데이트해주고 도커설치하고 이런걸 스크립트로 만들어놓은거에요.아예 처음 ec2 생성할때 이걸 포함시켜놓으면 아예 이상태로 만들어준다. 그럼 따로 설치할 필요가 없다.이거말고 더 필요한게 있으면 도커파일 만드는것처럼 파일 작업들(생성하면서 수행해야할 작업들)을 넣어주면된다.이게 쉘 스크립트다. 리눅스안에서 사용할수있느 ㄴ쉘스크립트다.- 맨 위의 #은 주석이아니라 이게 쉘스크립트라는걸 알려주는 포맷이다. - 위부터 명령 수업 쭉 하고, 마지막에 우분투 사용자가 sudo 명령 없이 할수있는것까지 했다.      - 이거 아셔야 해서.vpc.. 2024. 12. 11.