728x90

Programming 9

[프로그래밍 이론] Blocking vs Non-blocking / Sync vs Async

백엔드 개발자 채용공고를 확인하고 이력서를 넣어서 서류에 합격해 면접을 보게 되었습니다. 기본 인성관련 질문과 더불어 기술적인 프로그래밍 이론 또한 학습한 후, 면접 당일 면접 장소로 향했습니다. 면접 당일 마주한 내용 중 전혀 들어보지 못한 개념에 대해 질문을 받아 당황했고 "그 부분에 대해선 제가 지식이 부족합니다. 앞으로 학습할 수 있도록 하겠습니다." 라고 답변할 수밖에 없었습니다. 그 질문이 바로 오늘 이야기할 주제인 Blocking vs Non-blocking(블로킹 vs 논블로킹)과 Sync vs Async(동기 vs 비동기) 에 관련한 내용이었습니다. 앞에 사설이 길었으므로 아래 설명은 간단하게 해보겠습니다. 먼저 4가지 키워드를 하나씩 쪼개서 어떤 내용인지 살펴보겠습니다. ✅Blockin..

[JPA] Underbar 언더바 ( _ )가 포함된 컬럼명을 JPA가 인식 못하는 문제

Entity클래스에서 아래와 같이 각 컬럼명에 언더바가 포함되어 있으면 JPA가 인식하지 못하는 문제가 발생합니다. @Entity @Getter @NoArgsConstructor public class Post { @GeneratedValue(strategy = GenerationType.IDENTITY) @Id private Integer post_no; @Column(nullable = false) private String post_title; @Column(nullable = false, length = 2000) private String post_contents; @Column(nullable = false) private String nickname; 제 경우엔 Repository에서 오류가..

Programming/Spring 2022.04.20

[Spring] Web server failed to start. Port 8080 was already in use 에러

Spring에서 main메소드를 실행하면 Web server failed to start. Port 8080 was already in use. 라는 에러가 뜨면서 8080포트를 이용할 수가 없었다. 이미 다른 태스크에서 8080포트를 이용하고 있기 때문에 일어나는 현상으로 이 때는 해당 포트를 사용하고 있는 태스크를 죽여주면(?) 된다. 명령 프롬포트(CMD)에서 netstat -ano를 실행 하면 그림 처럼 현재 실행중인 포트 목록?이 나오게된다. 8080 포트를 이용하고 있는 PID인 7720을 종료 시켜주면 된다. taskkill /pid 7720 /f ▶참고 : https://dundung.tistory.com/148

Programming/Spring 2022.04.08

[Python] Call by reference & Call by Value, 불변타입과 가변타입

알고리즘 및 자료구조(연결리스트)를 공부하던 중 아래와 같은 의문이 들었습니다. ▶궁금했던 내용 아래 코드는 리트코드 21번 Merge Two Sorted Lists에 대한 풀이입니다. https://leetcode.com/problems/merge-two-sorted-lists/ Merge Two Sorted Lists - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com # https://leetcode.com/problems/merge-two-sorted-li..

Programming/Python 2022.03.26

[알고리즘] Big-O 표기법 정리 노트

Big-O 표기법 이란? 알고리즘의 성능을 수학적으로 표현하는 표기법으로 시간복잡도(Time Complexity), 공간복잡도(Space Complexity)를 표현할 수 있다. 이 때 상수는 무시한다. 표기법 1. O(1) 입력 데이터의 크기에 상관없이 언제나 일정한 시간이 걸리는 알고리즘 F(int[] n) { return (n[0] == 0)? true:false; } 그래프로 나타내면 아래와 같다. 2. O(n) 입력 데이터의 크기에 비례해서 처리시간이 걸리는 알고리즘 F(int[] n) { for i = 0 to n.length print i } 그래프로 나타내면 아래와 같다. O(2n) => O(n) 으로 표기한다 빅오 표기법은 실제 알고리즘의 러닝타임을 재기 위해 만든게 아닌 장기적으로 데이..

[Java] 오버로딩(Overloading)과 오버라이딩(Overridding)에 대해서

면접 단골 질문인 오버로딩(Overloading)과 오버라이딩(Overridding)의 차이점에 대해서 확실히 개념을 잡고가고자 아래 포스팅을 작성한다. 1. 오버로딩(Overloading) 한 클래스 내에서 동일한 이름의 메소드(함수)를 복수로 정의하는 것 단, 메소드의 이름은 동일해야하며 매개변수(parameter)의 갯수 또는 타입이 달라야 한다. *리턴 타입만 다른 경우는 오버로딩이라고 볼 수 없다. 예제) public class Main { public static void main(String[] args) { } int add(int x, int y, int z) { return x+y+z; } long add(int a, long b, long c) { return a+b+c; } } Ma..

Programming/Java 2022.03.04

[Python] f-string에 대해서

scores = [ {'name':'영수','score':70}, {'name':'영희','score':65}, {'name':'기찬','score':75}, {'name':'희수','score':23}, {'name':'서경','score':99}, {'name':'미주','score':100}, {'name':'병태','score':32} ] for s in scores: name = s['name'] score = str(s['score']) print(f'{name}의 점수는 {score}점 입니다.') print(name + '의 점수는 ' + str(s[score]) + '점 입니다.'] 로 쓰는 것보다 훨씬 간결하게 표현할 수 있다.

Programming/Python 2022.02.20

[Python] 웹 크롤링(Web Crawling)

1. 사전 준비 먼저 크롤링 하고 싶은 웹사이트의 url을 지정하고 request(요청)하여 아래와 같이 사용할 수 있다. *request 라이브러리 설치는 [파일] - [설정] - [프로젝트: (프로젝트명)] - [Python 인터프리터] - [+버튼 클릭] + [reqeusts검색 후 인스톨] import requests # headers 는 마치 우리가 코드가 아닌 브라우저에서 콜을 날린 것처럼 인식하게 하는 코드다. headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'} data = requests...

Programming/Python 2022.01.26

[GitBash] 서버 24시간 켜두기와 강제 종료

#서버 켜기 $ ssh -i /c/Users/iwogh/Desktop/parunson_mykey.pem ubuntu@3.38.102.103 # python3 -> python (명령어 커스텀) sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10 # pip3 -> pip (명령어 커스텀) sudo apt-get update sudo apt-get install -y python3-pip sudo update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 1 # port forwarding 포트 포워딩 sudo iptables -t nat -A PREROUTING -i e..

Programming 2022.01.26
728x90