전체 글 424

2024 3회 정보처리기사 필기 후기 및 오답정리

2024 3회 정보처리기사  필기 후기7월 7일에 응시한  3회 정처기 시험 후기를 남기려한다.그동안 필기는 요약본, 기출문제만으로 된다는 합격 후기를 많이 봤다. 그래서 두 가지로만 3주 정도(직장인 기준) 공부하고 합격했다. 막상 시험을 보니 시나공 요약본 2023, 기출문제 (2020-2022)에서 본 적 없는 문제가 체감 상 5 ~ 10문제는 되는것 같았다 ㅠㅠ 90점 이상 고득점을 바란다면 이것만으로는 부족하지만 합격 커트라인 60점을 넘기 위해서는 괜찮은 편이다. 최신 기출 문제집에는 2023년 기출 문제들을 확인할 수 있다고 하니 참고하면 도움이 될 것 같다. 시험 시간 2시간 반 동안에 100 문제를 풀면 되는데 넉넉해서 중간에 나왔다. 다른 기사 시험에 응시하는 분들도 섞여있었고 많은 사..

자격증 2024.07.08

53회 SQLD (2024 05 25) 후기 및 오답정리

53회 SQLD 시험 후기 이번 시험은 기출 문제에 비해서 어려운 문제가 많았다. 한 달 동안 2023 이기적 sql 교재 하나로만 공부했는데 다시 돌아간다면 노랭이 + 다른 기본서를 참고해서 두 달 정도 깊게 공부할 것이다. 시험을 보다가 2023 교재에는 없는 피벗 테이블 문제가 하나 나와서 당황했다ㅠㅠ(교재가 오타도 많고 별로라 느꼈는데 그래도 합격 점수를 받은 걸 보면 교재가 아주 별로는 아님)5만원 내고 응시했는데 결과도 한 달 뒤에 나오고 시험지를 가져올 수 없었다. 아쉬운대로 카페에서 답을 맞춰보며 도움이 많이 됐다. - https://cafe.naver.com/sqlpd참고로 정처기와는 다르게 시험 장소가 근처에 많지 않아서 접수 첫 날에 바로 하는 걸 추천한다.----------- 출제 ..

자격증 2024.05.26

[12월 5주차] Vue.js 3 상위 컴포넌트 ↔ 하위 컴포넌트 데이터 전달 방법

얼마 전부터 회사에서 IoT 관련 웹 페이지를 만들고 있습니다. 그림과 같이 최상위 컴포넌트(Page) 안에 검색 컴포넌트(SearchForm)와 목록 컴포넌트(List)가 있고 그 안에 또 자식 컴포넌트(Modify)가 있는 형태입니다. 검색폼에 조건을 넣어서 조회하던 도중, 디바이스 정보를 등록하거나 수정한 다음, (검색 조건을 그대로 적용한) 새로운 목록이 조회되는 기능을 만들려고합니다. 그러기 위해서는 검색 정보(searchInfo)를 Page로 전달하고 또 다시 하위로 전달하는 구조가 필요합니다. Vue.js 3에서 컴포넌트 간에 데이터를 주고 받는 방법을 정리하며 살펴보겠습니다. 하위 컴포넌트(DeviceSearchForm) → 상위 컴포넌트(Page) 데이터 보내기 DeviceSearchFo..

개발 일지 2023.12.31

Ch 05. 객체 지향 설계 5원칙 SOLID

객체 지향 설계의 원칙, SOLID 에 대해 각 예시와 함께 살펴보려고 한다. 평소에 자주 사용하는 Java, JDBC 도 SOLID와 관련되어 있다. SRP (Single Responsibility Principle, 단일 책임원칙) 단일책임원칙이란? 하나의 클래스는 하나의 역할만 수행해야한다는 의미. "어떤 클래스를 변경해야하는 이유는 오직 하나뿐이어야한다." Ex 1) SRP를 만족하는 설계 "남자" 클래스는 다음 네 가지 역할을 하고 다음 8개의 메서드로 구성된다. 남자친구 역할 - 기념일 챙기기(), 데이트하기() 아들 역할 - 효도하기(), 안마하기 사원 역할 - 출근하기(), 아부하기()" 소대원 역할 - 사격하기(), 구보하기() 이를 SRP에 맞게 바꾸려면? 남자클래스 안에서의 역할과 책..

Ch 02. Java와 절차적/구조적 프로그래밍

Java 로 작성된 프로그램을 실행하기 위한 과정에 대해 알아보려고한다. JDK, JRE, JVM 의 역할 Java 로 작성된 프로그램을 실행하기 위해서는 JVM(Java Virtual Machine, 자바 가상 머신)이 필요하다. JVM으로 Java 코드를 실행하는 것은 컴퓨터가 어떤 프로그램을 실행하는 것과 비슷하다. ex) 어떤 소프트웨어 개발자가 개발 도구를 이용해서 개발하고 OS를 통해서 물리적 컴퓨터인 하드웨어 상에서 구동한다. JDK(Java Development Kit, 자바 개발 도구): JVM용 소프트웨어 개발 도구이다. 컴파일러인 javac.exe를 포함한다. JRE(Java Runtime Enviornment): JVM용 운영체제로서Java.exe(자바 프로그램 실행기)를 포함한다...

Ch 03. 자바와 객체 지향

객체 지향 객체 지향은 '인간' 지향 언어이다. 객체 지향은 현실 세계를 반영한다. 기계에 맞춰서 프로그래밍하던 방식(절차 지향 프로그래밍)을 버리고 인간이 사물을 인지하는 방식대로 프로그래밍하고자 만들고자 객체 지향 프로그래밍 언어가 탄생했다. 클래스와 객체의 관계는 붕어빵틀과 붕어빵이라기보다는 분류와 실체의 개념에 가깝다. 클래스는 분류, 집합, 같은 속성과 기능을 가진 객체를 총칭하는 개념이다. 객체지향의 대표적인 특성 캡슐화(정보 은닉) 추상화(모델링) 상속(재사용) 다형성(사용 편의) 추상화 = 모델링 Object 의 의미는 '객체'보다는 '개체'라는 뜻에 더 가깝다. 객체는 세상에 존재하는 유일무이한 사물을 말한다. (By 저자) 객체를 특성(속성, 기능)에 따라 분류해보니 객체를 통칭할 수 ..

Java 큰 수의 피보나치 수열의 값은?

피보나치(Fibonacci) 수열이란? 1, 1, 2, 3, 5, 8, .. 와 같이 f(x) = f(x - 2) + f(x - 1); 을 만족하는 수열을 말한다. (첫 항: f(0) = 0 또는 f(1) = 1) 아주 큰 자연수 n에 대하여 피보나치 수열의 n 번째 값은 어떻게 구할 수 있을까? 첫 번째 시도 [Long] static 으로 선언한 List 안에 하나씩 값을 넣어준다. list = [1, 1, 2,3, 5, ...] 해당 리스트에 메모이제이션을 적용했다. static List list = new ArrayList(); private static void fiboFunc(int idx) { if (idx == 1 || idx == 2) { list.add(idx, 1L); return; }..

ubuntu 서버에서 gradle 버전 수정하기

ubuntu 서버에서 gradle를 다운 받으면 최신 버전이 아니라 기본으로 gradle 옛날 버전이 깔린다. 그런데 현재 진행 중인 프로젝트는 gradle 8.2.1 을 이용 중이라서 업그레이드 하려한다. 과정은 다음과 같다 로컬에 gradle 8.2.1 다운 scp 로 원격 서버에 gradle 압축 파일 전송 압축 해제 gradle 관련 환경 변수 설정 gradle -v 를 통해 버전이 바뀌었는지 확인 gradle 버전 확인 방법 현재 로컬에서 개발중인 프로젝트의 gradle 버전은 gradle-wrapper.properties 파일에서 확인 가능하다. 로컬에 gradle 8.2.1 다운 https://services.gradle.org/distributions/gradle-8.2.1-bin.zip ..

Spring 애플리케이션을 원격으로 전송하기

로컬에서  원격(ubuntu) 으로 파일 전송  - SCP 프로토콜개발하고 있는 spring 애플리케이션을 .jar 파일로 압축해서 ubuntu 서버에 전송하고 실행하려한다. gradle의 'bootJar'를 실행하고 나면build/lib 안에 프로젝트를 압축한 .jar 파일이 생성된다. SCP(secure copy): SSH 프로토콜 기반으로 파일을 안전하게 전송하는 수단이다. SCP는 SCP 프로토콜 또는 SCP 프로그램을 가리킨다. Spring 프로젝트가 실행중인 폴더에서 cmd 창을 열고 다음 명령어를 실행하면 원격으로 파일을 전송할 수 있다. scp   -i   "pem파일경로" 원본파일주소 사용자@IP주소:/저장폴더IP주소: 원격 서버 주소를 의미한다. 000.000.000.000:~/ 라고 ..

ubuntu 방화벽 설정 방법(ufw)과 MySQL 접속 및 주의사항

원격 서버에 띄운 MySQL 서버에 접속하기 전 주의사항mysql 구성 정보 파일에 bind-address: 127.0.0.1 부분을 주석 처리한다. 또는 0.0.0.0 으로 수정한다. mysql 서버에서 각 사용자에 대한 권한 설정방화벽 설정: 특정 IP 에 대해서 3306번 포트에 접근을 허용한다. 인바운드 규칙 설정가비아에 설정한대로 작동하지 않을 경우, ubuntu 서버에서 "sudo ufw " 명령어를 사용해서 직접 규칙을 설정할 수 있다. 참고 ) https://oranthy.tistory.com/585?category=1050152현재 우분투 서버의 방화벽 정보 확인 방법 가비아 관리 콘솔에서 방화벽 규칙을 설정해도 적용되지 않는 것 같아서 알아보니 ubuntu 서버에서 직접 방화벽에 대해 ..