전체 글 63

202404 오랜만에 개발..은 아니고 일상 일기

얼마만인가요 이 블로그에 들어와 이렇게 키보드를 두드리는 일이. 열심히 공부를 하고 면접을 보러다니고 그렇게 정신없이 작년 하반기와 올해 상반기를 보내고 나니 벌써 2분기가 되었다. 믿을 수 없는 시간의 흐름과 믿을 수 없는 나의 위치..? 현재 상황을 남겨보고자 정말 지친 몸을 이끌고 이렇게 노트북을 열어 키보드를 두드린다. 1. 수많은 면접과 이직 작년 하반기에 이직을 결정하게 되면서 많은 곳에 지원하고 많은 면접을 보고 세개의 최종합격을 했다. 그 중 두 회사를 엄청나게 고민했는데,,,,,,,,,,,,, 두 회사는 정말 정반대의 회사였다. 그래서 정말정말 고민이 깊었다🥹 💡입사 포기한 회사 - 이 회사는 나를 처음으로 합격시켜준! 고마운 회사였고, 면접 분위기도 너무 좋았고 업무내용도 확실해서 정말..

그냥일기 2024.04.04

프로그래머스 코딩테스트 연습_문자열 내 p와 y의 개수 Java

가끔 내 실력을 모르겠다.. 레벨 2가 쉽다가도 레벨 1이 가끔 어려워서 내 자존감을 깎는다.. 그럴때면 정답률이 높은 문제를 풀면서 다시 재미를 느끼게 해줘야한다. 아무튼 이번에 푼 문제는 얼핏보면 for문을 돌려 카운팅을 해주면 되는 문제 같지만 그 방식으로 풀지 않아서 블로그에 남겨보려 한다. 문자열 내 p와 y의 개수 https://school.programmers.co.kr/learn/courses/30/lessons/12916?language=java 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제를 보면 p,P의 갯수와 y,Y의 갯수를 비..

TIL 2023.11.15

[비전공자의 컴공지식 채우기] 트랜잭션과 무결성

4. 데이터베이스 4.1 데이터베이스의 기본 4.3 트랜잭션과 무결성 4.3.1 트랜잭션 여러 개의 쿼리들을 하나로 묶는 단위. 트랜잭션에 대한 특징 ACID (원자성, 일관성, 독립성, 지속성) - 원자성(Automicity) : 트랜잭션이 모두 수행되었거나 되지 않았거나를 보장한다. 커밋 후 롤백할 땐 모두 수행되지 않는 처음을 보장하는 것이다. * 트랜잭션 전파 : 커넥션 단위로 수행할 때 커넥션 객체를 넘겨서 수행해야 한다. 이렇게 수행하지 않고 트랜잭션 관련 메소드의 호출을 하나의 트랜잭션에 묶이도록 하는 것을 트랜잭션 전파 라고 한다. => spring의 @Transactional annotation - 일관성(Consistency) : 허용된 방식으로만 데이터를 변경해야 한다. - 격리성(I..

[비전공자의 컴공지식 채우기] 데이터베이스의 기본

너~무 어려웠던 2장 네트워크 파트 끝... 바로 3장 운영체제를 해보려다 당장 필요한 데이터베이스 부터 해보기로 한다. 4. 데이터베이스 4.1 데이터베이스의 기본 데이터베이스(DB) 일정한 규칙, 혹은 규약을 통해 구조화되어 저장되는 데이터의 모음 => 이것을 제어, 관리하는 통합시스템 : DBMS RDBMS : 관계형 데이터베이스 4.1.1 엔터티 entity 사람, 장소, 물건, 사건, 개념 등 여러 개의 속성을 지닌 명사 ex) 회원 : 이름, 아이디 같은 속성을 갖는 entity 4.1.2 릴레이션 relation 정보를 구분하여 저장하는 기본단위, RDBMS에서는 테이블, NoSQL에서는 컬렉션 4.1.3 속성 attribute 릴레이션에서 관리하는 구체적이며 고유한 이름을 갖는 정보 (en..

[TIL] 프로그래머스 숫자의 표현 효율성 테스트 실패ㅠㅠ

https://school.programmers.co.kr/learn/courses/30/lessons/12924 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이중 for문으로 다소 좋아하지 않는 생김새의 코드를 짜보았다.. class Solution { public int solution(int n) { int answer = 0; for(int i=1; i

TIL 2023.11.03

[비전공자의 컴공지식 채우기] HTTP

2. 네트워크 2.1 네트워크의 기초 2.2 TCP/IP 4계층 모델 2.3 네트워크 기기 2.4 IP 주소 2.5 HTTP 2.5.1 HTTP/1.0 한 연결당 하나의 요청을 처리 -> RTT(패킷이 왕복시간) 증가 2.5.2 HTTP/1.1 매번 TCP를 연결하는 것이 아니라 TCP초기화 이후에 keep-alive라는 옵션으로 여러 개의 파일을 송수신한다. 헤더에 쿠키, 메타데이터 등이 들어있어 무거운 구조 2.5.3 HTTP/2 멀티플렉싱, 헤더 압축, 서버 푸시, 요청의 우선순위를 처리하는 프로토콜 - 멀티플렉싱 : 여러 개의 스트림을 사용하여 송수신함 - 헤더압축 : 허프만 코딩 압축 알고리즘을 사용하여 HPACK 압축형식을 가짐 - 서버푸시 : 클라이언트의 요청없이 서버가 바로 리소스를 푸시할..

[TIL] Stream API method 탐구2, 객체 리스트와 map, flatMap

예제를 하나 더 늘려봤다. List personList; @BeforeEach void setUp() { ... personList = List.of(new Person("박병호","30"), new Person("최원태","20"), new Person("김상수", "30")); } ... @Getter @Setter private static class Person { private String name; private String age; public Person(String name, String age) { this.name = name; this.age = age; } } 서른살의 박병호, 김상수와 스무살의 최원태를 Pesrson으로 만들어주었다. personList.stream() .map(..

TIL 2023.10.27

[비전공자의 컴공지식 채우기] 네트워크 기기 & IP 주소

2. 네트워크 2.1 네트워크의 기초 2.2 TCP/IP 4계층 모델 2.3 네트워크 기기 2.4 IP 주소 2.3.1 네트워크 기기의 처리범위 애플리케이션 계층 : L7 스위치 인터넷 계층 : 라우터, L3 스위치 데이터 링크 계층 : L2 스위치, 브리지 물리계층 : NIC, 리피터, AP 2.4.1 ARP 컴퓨터 컴퓨터 간에 통신할 때 논리적 주소 IP -> ARP를 통해 물리적 주소인 MAC 주소를 찾는다. 전송하는 과정 1. A컴퓨터 : 0.0.0.0 IP 주소를 B,C,D컴퓨터로 ARP request 브로드캐스트를 보내서 MAC 주소를 찾음 2. B컴퓨터 : 0.0.0.0 인 B가 ARP Reply 유니캐스트를 통해 mac주소를 반환 2.4.3 IP 주소체계 기존에는 클래스기반 할당 방식을 사..

[비전공자의 컴공지식 채우기] TCP/IP 4계층 모델

2. 네트워크 2.1 네트워크의 기초 2.2 TCP/IP 4계층 모델 2.2.1 계층구조 애플리케이션 계층 FTP/HTTP/SSH/SMTP/DNS 전송 계층 TCP/UDP/QUIC 인터넷 계층 IP/ARP/ICMP 링크 계층 이더넷 - 애플리케이션 계층 : 실질적으로 사람들에게 제공하는 층. 메시지를 기반으로 데이터를 전달한다. - 전송계층 : 송,수신자를 연결하는 통신 서비스를 제공한다. 애플리케이션 인터넷 계층 사이에서 데이터 중계역할을 한다. - 인터넷 계층 : 장치로 부터 받은 네트워크 패킷을 목적지로 전달한다. - 링크 계층 : 실질적으로 데이터를 전달하고 장치 간 신호를 주고받은 규칙을 정한다. - 물리계층 / 데이터 링크 계층 - 유선 LAN : 전이중화 통신을 쓴다 ( 양쪽 장치가 동시에 ..

[TIL] Stream API method 탐구, map과 filter

일할 때 자주 쓰긴 하는데 사실 확실히 아는상태에서 쓰는게 아니라 얼레벌레 쓰는 것 같아서.. stream 연습문제를 풀기 전에 여러 케이스를 짜보면서 공부해봤다.. 실험대상은 맵으로 만들어진 리스트와 스트링 리스트 두개,, Map map = Map.of("두산","김현수","키움","이지영","샌디애고","김하성"); Map map2 = Map.of("키움","승리를 위한 함~성","두산","걸어간다 양의지","기아","기아의 김~주찬"); List mapList = List.of(map,map2); List stringList = List.of("Kiwoom","Hanhwa","Doosan", "heroes"); map : 기존의 stream 요소들을 변환하여 새로운 stream을 생성한다. // 1..

TIL 2023.10.24