본문 바로가기

분류 전체보기59

리눅스에 몇개의 connection을 생성할 수 있을까?(결론 안남) 우테코의 이번 인프라 미션에서는, 서버에 몇개의 소켓을 연결할 수 있는지를 물어보는 문제가 있다. 이 문제를 풀며 새로 공부한 내용들을 한번 적어보도록 하겠다. 기본적으로 알아야 할 부분은, 리눅스는 대부분의 io, proc등을 파일로 관리한다는 점이다. 따라서 소켓을 몇개나 만들 수 있는지 확인하기 위해서는 몇개의 파일을 생성할 수 있는지를 확인하면 된다. 이와 관련된 글이 있다. woowabros.github.io/experience/2018/04/17/linux-maxuserprocess-openfiles.html Java, max user processes, open files - 우아한형제들 기술 블로그 안녕하세요? 우아한 형제들에서 결제/정산 시스템을 개발하고 있는 이동욱입니다.올해 사내 블로.. 2021. 5. 1.
Repository와 Dao의 차이점. Repository와 Dao의 차이점에 대한 논쟁은 이전부터 끝없이 진행되어 왔다. 이번 포스팅에서는 Repository와 Dao의 차이에 대한 나의 생각을 논해보록한다. 필자가 생각하기에 Dao와 Repository의 차이점을 이해하기위해 필요한 선행지식은 다음과 같다. 1. 객체지향 2. DAO 3. DDD 4. 기본적인 웹 설계 구조 당연하다. DAO가 왜 그렇게 설계되었는지, 만들어진 목적을 이해하기 위해서는 객체지향적 설계법이 대한 지식이 수반되어야 한다. 또한 Repository를 이해하기 위해서는 DDD를 알아야 한다. 왜냐? DDD에서 Repository라는 개념이 튀어나왔기 때문이다. 실제로 스프링 프레임워크의 @Repository 어노테이션을 들어가서 보면 다음과 같이 명시되어 있다. .. 2021. 4. 22.
[JAVA] enum을 잘 활용하기 위한 기본 지식. 자바에서는 enum이라는 열거형 자료형을 표현하기 위한 강력한 도구를 제공해준다. 하지만 enum은 매우 강력한 도구임에도 불구하고, 절차지향 프로그래밍을 해온 사람들에게는 약간의 혼란을 야기한다. 자바의 enum은 c언어의 그것과 무엇이 다를까? 보통 프로그래밍을 처음 배울때 c언어로 시작할 것이다.(요즘은 파이썬으로 많이 하는 것 같지만..) 그리고 열거형 자료형을 배울 떄 아래와 같은 코드를 많이 봐왔을 것 이다. enum DayOfWeek { Sunday = 0, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday }; 아주 눈에 익은 코드다. 이렇게 정의하면 우리는 Sunday, Monday와 같이 특정 값을 나타내는 변수를 간편히 가져와 사용할 수.. 2021. 4. 22.
[oop] 원시값을 포장하라! 소트웍스 앤솔러지:소프트웨어 기술과 혁신에 관한 에세이 에는 원시값을 포장하라는 내용이 나온다. 왜 우리는 원시값을 포장해야하는걸까? 모두가 알고 있듯, 객체지향은 캡슐화, 추상화, 상속성, 다형성과 같은 특성을 가지고 있다. 그중에 원시값의 포장은 캡슐화와 매우 큰 연관성을 가지고 있다. 캡슐화에 관해서는 이곳 을 참조 바란다. 즉, 데이터와 그 로직을 한곳에 모아두라는 의미이다. 그렇게 해서 객체가 생성되면, 그 객체에는 생명이 생긴다. 단순한 데이터 덩어리에서 객체라는 하나의 유기체로 승격되는 것 이다. public class Wallet { Card card; long cash; public void pay(long fee) { if(cash - fee < 0 ) { throw new Ille.. 2021. 4. 20.