전체 글 (461) 썸네일형 리스트형 프로그래머스 사칙연산 자바 프로그래머스의 문제, "사칙연산"을 풀어보자. "사칙연산" 문제에서 기본 예시로 주어진 값들을 살펴보면 1 - 3 + 5 - 8 을 계산할 때 아래와 같은 케이스가 나타날 수 있다고 설명하고 있다. 1. 연산 규칙 확인여기에서 주의해야 할 점은 1 + (-3 + 5) -8 과 같은 연산이 없다는 것이다."-" 연산자를 괄호 안에 넣고 그 앞을 "+" 로 치환해주는 식의 연산은 할 수 없다는 것이다. 2. "-" 부호의 특징 인지일반적으로 "+" 부호만 있다고 생각하면 다 더하는 것이 최대값이다.그러나 이번 문제에는 "-" 부호가 존재하기 때문에 "-" 연산자의 특징에 대해서 생각해 볼 필요가 있다."-" 연산자가 있는데 최대 값을 구하려면 어떻게 해야할까?바로 "-" 연산자 뒤에 있는 값들을 최소값으로 .. [우테코] 프리코스 4주차 회고 TDD - 테스트 주도 개발 3주차에서 테스트 주도 개발을 시도하였으나 실패하였다. 로또 프로젝트를 완성하고 난 후 살펴보면 충분히 테스트 주도 개발을 할 수 있을 것만 같은데 시작 단계에서는 왜이리 막막한 건지 원인을 생각해보니 설계의 문제인 것 같았다. 프로젝트 시작 전 기능 구현 목록을 정리하는 시간을 매번 가지고 있었는데, 절차 지향적으로 기능을 생각하다 보니 TDD가 더욱 어렵게 느껴졌던 것으로 판단하여 이번에는 가장 작은 단위의 클래스는 어떤 것이 있는지, 그 클래스에는 어떤 기능이 있어야 하는지, 객체 단위로 설계를 해보는 시간을 가졌다. 가장 작은 단위에 클래스와 그 안에 어떤 기능이 있으면 좋겠다 라는 설계를 한 뒤 진행을 해보니, 한결 수월하였다. 성공적으로 프로젝트가 진행될 줄 알았으.. [우테코] 프리코스 2주차 회고 프리코스와 함께 보낸 시간이 2주가 다 되어간다. 좋은 코드를 고민하고 같은 분야의 많은 사람들과 함께 공통된 주제로 토의하는 시간을 가지다 보니 나도 같이 타오르는 것을 느꼈다. 특히 의미있는 고민과 생각을 공유하는 사람들이 정말 많았고, 서로 학습한 내용을 나누며 빠른 속도로 성장할 수 있도록 하는 우테코만의 분위기가 너무 즐거웠다. 이번 2주차에서는 “어떻게 해야 더 가독성이 좋을까?”, “어떻게 해야 더 객체지향적으로 설계할 수 있을까?” 이런 고민들을 중점적으로 하고, 코드에 녹여보는 시간을 집중적으로 가져보았다. 특히 책임을 바탕으로 역할을 분리하여 도메인을 설계하고, 클린 코드의 원칙을 최대한 지키려고 노력하여 최대한 높은 수준의 코드를 개발해나갔다. 이런 노력을 통해 코드의 가독성이 눈에 .. 역행자 1단계 자의식 해체 신이 망가뜨리고 싶은 인간이 있으면 신은 먼저 그가 잘될 사람이라고 추켜세운다. 가능성의 적들 (시릴코널리) 자의식 과잉이 되는 것을 막아야한다. 자의식 과잉이란 자기 평판에 너무 많은 신경을 쓰고, 이로 인하여 비상식적인 사고 방식이나 패턴을 보이는 것을 말한다. 하지만 여기서 말하는 자의식 과잉이란. 냉소적인 태도, 자기 방어 기재를 의미하는 것 같다. '역행자'에서는 성공하기 위한 첫번 째 단계로 이러한 자의식을 해체해야 한다고 말하고 있다. 냉소적인 태도, 자기 방어 기재는 인간이 안정적인 상태를 만들기 위한 메커니즘이라고 보면 된다. 이러한 틀을 깨고 나와야 순리를 거스를 수 있는, 역행자의 삶을 살기 위한 시작 단계를 밟을 수 있는 것이다. 틀을 깨는 방법은 세가지 스텝으로.. 컴퓨터 시스템의 동작 원리 컴퓨터의 시스템 구조는 내부장치와 외부장치로 나눠진다. 내부장치: CPU, 메모리 외부장치: 디스크, 키보드, 마우스, 모니터, 네트워크 장치 입출력 (Input-Output: I/O) 장치: 키보드로 입력 받아 결과를 모니터로 출력 1. 컴퓨터 시스템의 구조 메모리 및 입출력장치 등의 하드웨어 장치에는 컨트롤러라는 것이 붙어있다. 일종의 작은 CPU라고 보면 된다. 2. CPU 연산과 I/O 연산 I/O 연산은 입출력 컨트롤러가 담당 컴퓨터 내에서 수행되는 연산은 메인 CPU가 담당 로컬버퍼: 각 장치마다 데이터를 임시로 저장하기 위한 작은 메모리 디스크나 키보드 등에서 데이터를 읽어오는 경우, 우선 로컬버퍼에 데이터가 임시로 저장된 후 메모리에 전달된다. 로컬버퍼로 읽어오는 일은 컨트롤러가 담당 3... 운영체제 개요 1. 운영체제의 정의 - 운영체제란 컴퓨터 하드웨어 바로 윗단에 설치되는 소프트웨어를 말한다. - 소프트웨어가 컴퓨터 시스템에서 실행되기 위해서는 메모리에 프로그램이 올라가 있어야 한다. - 커널 : 메모리에 상주하는 운영체제, `좁은 의미의 운영체제` - 넓은 의미의 운영체제 : `커널 + 유틸리티` - 유틸리티 : 윈도우의 복사 프로그램과 같은 것, 메모리에 상주하지는 않는다. 2. 운영체제의 기능 운영체제의 기능은 세가지로 나눌 수 있다. 하드웨어를 위한 역할 사용자를 위한 역할 보안 하드웨어를 위한 역할 컴퓨터 시스템 내의 자원을 효율적으로 관리하는 것을 말한다. 자원이란 CPU, 메모리, 하드디스크 등 하드웨어 자원뿐 아니라 스프트웨어 자원까지를 통칭해서 부르는 말이다. 사용자를 위한 역할 사용.. Java의 동작 방식과 JVM의 구조 (메모리) 메모리 ( Runtime Data Area ) JVM은 Java 프로그램의 실행을 담당하며, 이를 위해 Runtime Data Area라고 불리는 메모리 영역을 제공합니다. Runtime Data Area는 JVM이 프로그램을 실행하는 동안 데이터와 코드를 저장하고 관리하는 중요한 구성 요소입니다. 메모리는 복잡해 보일 수 있는데 크게 다섯가지 영역으로 나눠져 있습니다. 각각의 영역을 살펴보도록 하겠습니다. [ Method Area ] 메소드 영역은 클래스 로더에 의해 로드된 클래스 파일의 바이트 코드와 메소드 정보, 상수 풀(Constant Pool) 등을 저장하는 영역입니다. (클래스 별 구조와 정보를 저장하는 영역) 클래스/인터페이스/인스턴스 초기화에 사용되는 스페셜 메서드 런타임 상수 풀, 필드/.. Springboot - Redis 연결 및 데이터 저장 Redis와 연결하려면 Spring Data Redis API 세트만 사용하면 된다고 합니다. 여기서 말하는 Spring Data Redis API는 Redis에 대한 활성 연결 작업을 위한 패키지인데 org.springframework.data.redis.connection 패키지와 해당 RedisConnection 및 RedisConnectionFactory 인터페이스를 말하는 것이라고 합니다. 이는 build.gradle setting을 통해서 획득할 수 있습니다. implementation 'org.springframework.boot:spring-boot-starter-data-redis' RedisConnection은 Redis와 통신을 하기 위한 core building block을 제공한다.. 이전 1 2 3 4 ··· 58 다음