<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>복's</title>
    <link>https://nashs789.tistory.com/</link>
    <description>배움중에 있는 주니어 개발자 입니다.
부족한 점 배움으로 채워 나가겠습니다.</description>
    <language>ko</language>
    <pubDate>Wed, 8 Apr 2026 16:31:20 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>나복이</managingEditor>
    <image>
      <title>복's</title>
      <url>https://tistory1.daumcdn.net/tistory/6593342/attach/81989d4bffac47a1ba7670a4c16ffa25</url>
      <link>https://nashs789.tistory.com</link>
    </image>
    <item>
      <title>[ With Claude ] 콘서트 티켓팅 시스템(Phase 1)</title>
      <link>https://nashs789.tistory.com/199</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;[ With Claude ] 콘서트 티켓팅 시스템 &amp;mdash; Phase 1 회고 (Spring Boot + JPA + TDD)&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  Overview&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;목표: 백엔드 아키텍처 학습 프로젝트 Phase 1을 마치며, 설계 결정과 마주한 문제들을 정리한다.&lt;/li&gt;
&lt;li&gt;환경:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Java 21 / Spring Boot 3.x&lt;/li&gt;
&lt;li&gt;JPA + PostgreSQL + Flyway&lt;/li&gt;
&lt;li&gt;JUnit5 + Mockito + TestContainers&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;사전 준비: Spring Boot 프로젝트 초기 세팅, PostgreSQL 로컬 환경&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  무엇을 만들려 했는가&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나는 백엔드 아키텍처를 단계적으로 학습하기 위한 프로젝트로 콘서트 티켓팅 시스템을 선택했다.&lt;br /&gt;Phase 1의 목표는 기술 스택의 화려함보다 &lt;b&gt;구조를 올바르게 잡는 것&lt;/b&gt;이었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;구현 대상은 6개 도메인, 21개의 유스케이스였다.&lt;/p&gt;
&lt;table data-ke-align=&quot;alignLeft&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;도메인&lt;/th&gt;
&lt;th&gt;유스케이스&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;공연장 (Venue)&lt;/td&gt;
&lt;td&gt;등록 / 수정 / 삭제 / 조회&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;공연 시리즈 (ConcertSeries)&lt;/td&gt;
&lt;td&gt;등록 / 수정 / 삭제&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;아티스트 (Artist)&lt;/td&gt;
&lt;td&gt;등록 / 수정 / 삭제&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;공연 (Concert)&lt;/td&gt;
&lt;td&gt;등록 / 수정 / 취소 / 목록 조회 / 상세 조회&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;좌석 (SeatType + Seat)&lt;/td&gt;
&lt;td&gt;등급 설정 및 자동 생성 / 목록 조회&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;사용자 (User)&lt;/td&gt;
&lt;td&gt;가입 / 조회 / 수정 / 탈퇴&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기능 자체는 복잡하지 않다. 중요한 건 &lt;b&gt;레이어 의존성을 어떻게 잡느냐&lt;/b&gt;였다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  Architecture&lt;/h3&gt;
&lt;pre class=&quot;isbl&quot;&gt;&lt;code&gt;Presentation &amp;rarr; Application &amp;rarr; Domain &amp;larr; Infrastructure&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Domain은 Spring, JPA 등 외부 프레임워크에 의존하지 않는다.&lt;/li&gt;
&lt;li&gt;Infrastructure가 Domain의 Repository 인터페이스를 구현한다.&lt;/li&gt;
&lt;li&gt;역방향 의존은 발생 즉시 수정한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;groovy&quot;&gt;&lt;code&gt;domain/
  user/          &amp;larr; 순수 Java, 프레임워크 의존 없음
  venue/
  concert/       &amp;larr; ConcertSeries 포함
  seat/          &amp;larr; SeatType, SeatGrade, Seat

application/
  concert/facade/   &amp;larr; 멀티 도메인 오케스트레이션
  seat/facade/

infra/
  user/repository/impl/
  venue/repository/impl/
  concert/entity/ repository/
  seat/entity/ repository/

api/
  concert/controller/ request/ response/
  seat/controller/ request/ response/
  ...&lt;/code&gt;&lt;/pre&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  설계하면서 내린 결정들&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Info 패턴 도입&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나는 초기에 Service, Controller에서 JPA Entity를 직접 반환했다.&lt;br /&gt;문제는 곧 드러났다. Entity를 상위 레이어가 직접 참조하면 JPA 어노테이션, 프록시 객체, 지연 로딩 등 Infrastructure 계층의 관심사가 Domain 위로 올라온다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해결책으로 &lt;b&gt;Info record 패턴&lt;/b&gt;을 도입했다.&lt;/p&gt;
&lt;pre class=&quot;reasonml&quot;&gt;&lt;code&gt;// Infrastructure 레이어에서만 toInfo() 호출
public ConcertInfo toInfo() {
    return new ConcertInfo(id, title, status, venueId, ...);
}

// Domain/Application 레이어는 Info만 다룸
public ConcertInfo findById(Long id) {
    return concertRepository.findById(id)
                            .orElseThrow(() -&amp;gt; new EntityNotFoundException(CONCERT_NOT_FOUND));
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Entity는 Infrastructure 안에 갇히고, 상위 레이어는 순수한 Java record인 Info만 본다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Facade 패턴 도입&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Concert 등록 시 Venue 존재 여부, Artist 유효성, 날짜 순서 등 여러 도메인을 조합해야 했다.&lt;br /&gt;이 로직을 어디에 둘 것인가가 문제였다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Controller에 두면 비즈니스 로직이 Presentation 레이어로 올라간다.&lt;/li&gt;
&lt;li&gt;ConcertService에 VenueService, ArtistService를 주입하면 도메인 간 결합이 생긴다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나는 &lt;code&gt;application/{feature}/facade/&lt;/code&gt; 레이어를 만들고, 멀티 도메인 오케스트레이션은 Facade가 담당하도록 했다.&lt;/p&gt;
&lt;pre class=&quot;routeros&quot;&gt;&lt;code&gt;단일 도메인 CRUD:   Controller &amp;rarr; Service (직접)
멀티 도메인 조합:   Controller &amp;rarr; Facade &amp;rarr; Service들&lt;/code&gt;&lt;/pre&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;ConcertSeries 패키지 이동&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나는 초기에 ConcertSeries를 독립 도메인으로 설계했다.&lt;br /&gt;구현 중 Concert에 종속되는 개념임이 명확해져 &lt;code&gt;domain/concert/&lt;/code&gt; 하위로 이동했다.&lt;br /&gt;설계는 코드를 짜면서 바뀐다는 것을 체감한 순간이었다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  만났던 문제들&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;문제 1 &amp;mdash; IDENTITY 전략 + orphanRemoval 스냅샷 불일치&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Phase 1에서 가장 골치 아픈 버그였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;증상: &lt;code&gt;Update.success()&lt;/code&gt; 통합 테스트 실패. 아티스트를 교체했는데 기존 아티스트가 삭제되지 않고 2건이 남았다.&lt;/p&gt;
&lt;pre class=&quot;routeros&quot;&gt;&lt;code&gt;Expected size: 1 but was: 2 in:
[ConcertArtistInfo[artistId=4, artistName=BTS, role=MAIN],
 ConcertArtistInfo[artistId=5, artistName=IU, role=FEAT]]&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;같은 트랜잭션 내에서 &lt;code&gt;create()&lt;/code&gt; &amp;rarr; &lt;code&gt;update()&lt;/code&gt; 순서로 호출했을 때 발생했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;관련 코드 구조&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;reasonml&quot;&gt;&lt;code&gt;ConcertEntity
  @OneToMany(mappedBy = &quot;concert&quot;, cascade = ALL, orphanRemoval = true)
  List&amp;lt;ConcertArtistEntity&amp;gt; concertArtists

ConcertArtistEntity
  @ManyToOne(fetch = LAZY)
  @JoinColumn(name = &quot;concert_id&quot;)
  ConcertEntity concert

ConcertEntity.replaceArtists()
  this.concertArtists.clear()   // 기존 아티스트 제거
  this.concertArtists.add(...)  // 신규 아티스트 추가&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;원인: PersistentBag 스냅샷 + IDENTITY 즉시 INSERT 충돌&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Hibernate는 &lt;code&gt;orphanRemoval&lt;/code&gt;을 처리할 때 PersistentBag의 &lt;b&gt;스냅샷&lt;/b&gt;을 기준으로 삭제 대상을 판별한다.&lt;/p&gt;
&lt;pre class=&quot;sql&quot;&gt;&lt;code&gt;flush 시: snapshot에 있고 current에 없는 엔티티 &amp;rarr; DELETE&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문제는 &lt;code&gt;GenerationType.IDENTITY&lt;/code&gt;에 있었다.&lt;br /&gt;IDENTITY 전략은 DB의 auto_increment를 사용하기 때문에 INSERT를 실행해야만 PK를 알 수 있다.&lt;br /&gt;그래서 Hibernate는 &lt;code&gt;em.persist()&lt;/code&gt; 호출 즉시 INSERT SQL을 실행한다 &amp;mdash; full flush 없이.&lt;/p&gt;
&lt;pre class=&quot;sql&quot;&gt;&lt;code&gt;1. create() 호출
   - em.persist(concert) &amp;rarr; INSERT concerts (즉시 실행)
   - concertArtists = PersistentBag(snapshot=[], bag=[])
   - replaceArtists([BTS]):
     - clear() &amp;rarr; no-op
     - add(BTS) &amp;rarr; cascade PERSIST &amp;rarr; INSERT concert_artists(BTS) 즉시 실행
     - bag=[BTS], snapshot=[] &amp;larr; 스냅샷 갱신 없음 (full flush 아님)

2. update() 호출
   - findById() &amp;rarr; L1 캐시에서 동일 엔티티 반환
   - concertArtists는 이미 초기화된 PersistentBag(bag=[BTS], snapshot=[])
   - replaceArtists([IU]):
     - clear() &amp;rarr; bag=[], snapshot=[] (여전히 비어있음)
     - add(IU) &amp;rarr; cascade PERSIST &amp;rarr; INSERT concert_artists(IU) 즉시 실행

3. em.flush() 호출
   - orphan 판별: snapshot=[] vs current=[IU]
   - snapshot이 비어있어 &quot;제거된 orphan 없음&quot; 판정
   - BTS에 대한 DELETE 미발생

4. em.clear() 후 findById()
   - SELECT concert_artists &amp;rarr; BTS(MAIN), IU(FEAT) 2건 반환&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;상태 변화를 표로 정리하면 더 명확하다.&lt;/p&gt;
&lt;table data-ke-align=&quot;alignLeft&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;시점&lt;/th&gt;
&lt;th&gt;snapshot&lt;/th&gt;
&lt;th&gt;bag&lt;/th&gt;
&lt;th&gt;DB&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;create() 후&lt;/td&gt;
&lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;[BTS]&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;BTS 존재&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;update() clear() 후&lt;/td&gt;
&lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;BTS 존재&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;update() add(IU) 후&lt;/td&gt;
&lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;[IU]&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;BTS, IU 존재&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;em.flush() 후&lt;/td&gt;
&lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;[IU]&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;BTS, IU 존재&lt;/b&gt; &amp;larr; 버그&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;BTS는 full flush 없이 IDENTITY로 즉시 INSERT되었기 때문에 스냅샷에 한 번도 포함된 적이 없었다.&lt;br /&gt;&lt;code&gt;clear()&lt;/code&gt; 시점에 snapshot이 비어있으므로 orphan removal은 BTS를 삭제 대상으로 인식하지 못한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;버그 발생 시 실제 실행된 SQL&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;routeros&quot;&gt;&lt;code&gt;INSERT INTO concerts (...)                              -- create()
INSERT INTO concert_artists (BTS, MAIN)                 -- create() IDENTITY 즉시 INSERT
INSERT INTO artists (IU)                                -- artistService.create()
INSERT INTO concert_artists (IU, FEAT)                  -- update() IDENTITY 즉시 INSERT
UPDATE concerts SET title=?, description=? WHERE id=?   -- em.flush()
-- DELETE concert_artists WHERE id=? 없음!!!
SELECT * FROM concert_artists WHERE concert_id=?        -- [BTS, IU] 2건 반환&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;⚠️ 잘못된 접근: 단방향 &lt;code&gt;@OneToMany&lt;/code&gt; + &lt;code&gt;@JoinColumn&lt;/code&gt;으로 변경하면 해결될 거라 생각했지만, 근본 원인인 스냅샷 불일치는 동일하게 존재한다. 오히려 단방향은 자식 INSERT 시 FK 없이 먼저 INSERT하고 이후 UPDATE로 FK를 세팅하는 비효율이 추가된다.&lt;/p&gt;
&lt;pre class=&quot;sql&quot;&gt;&lt;code&gt;-- 단방향으로 변경 시 INSERT 방식
INSERT INTO concert_artists (artist_id, role) VALUES (?, ?)  -- concert_id 없이
UPDATE concert_artists SET concert_id=? WHERE id=?            -- FK 뒤늦게 설정&lt;/code&gt;&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;해결책: update 경로에서 명시적 삭제&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;orphanRemoval&lt;/code&gt;에 의존하는 대신, update 경로에서 기존 아티스트를 직접 삭제했다.&lt;/p&gt;
&lt;pre class=&quot;routeros&quot;&gt;&lt;code&gt;public interface ConcertArtistJpaRepository extends JpaRepository&amp;lt;ConcertArtistEntity, Long&amp;gt; {
    void deleteAllByConcert(ConcertEntity concert);
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Spring Data JPA의 &lt;code&gt;deleteAllByConcert()&lt;/code&gt;는 다음 순서로 동작한다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;code&gt;SELECT * FROM concert_artists WHERE concert_id=?&lt;/code&gt; &amp;mdash; 대상 엔티티 로드&lt;/li&gt;
&lt;li&gt;&lt;code&gt;em.remove()&lt;/code&gt; 개별 호출 &amp;mdash; L1 캐시 상태를 DELETED로 갱신하고 DELETE 예약&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class=&quot;livescript&quot;&gt;&lt;code&gt;@Override
public ConcertInfo update(UpdateConcertCommand command) {
    ConcertEntity concert = concertJpaRepository.findById(command.concertId())
            .orElseThrow(() -&amp;gt; new EntityNotFoundException(CONCERT_NOT_FOUND));
    List&amp;lt;ArtistEntity&amp;gt; artists = resolveArtists(command.artists());
    concert.update(command.title(), command.description(), command.seriesId(),
            command.concertDate(), command.bookingStartAt(), command.bookingEndAt());

    // orphanRemoval 스냅샷 문제 우회: 기존 아티스트 명시적 삭제 후 교체
    concertArtistJpaRepository.deleteAllByConcert(concert);  // em.remove() 개별 호출
    concert.getConcertArtists().clear();                     // 인메모리 컬렉션 동기화
    concert.replaceArtists(command.artists(), artists);      // 신규 아티스트 추가
    return concert.toInfo();
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;수정 후 SQL 실행 순서는 다음과 같다.&lt;/p&gt;
&lt;pre class=&quot;sql&quot;&gt;&lt;code&gt;INSERT INTO concerts (...)                              -- create()
INSERT INTO concert_artists (BTS, MAIN)                 -- create()
INSERT INTO artists (IU)                                -- artistService.create()
-- update() 진입
SELECT * FROM concert_artists WHERE concert_id=?        -- deleteAllByConcert 내부 SELECT
INSERT INTO concert_artists (IU, FEAT)                  -- replaceArtists() IDENTITY 즉시 INSERT
-- em.flush()
DELETE FROM concert_artists WHERE id=? (BTS)            -- deleteAllByConcert em.remove() 실행
UPDATE concerts SET title=?, description=? WHERE id=?
-- SELECT 후 [IU] 1건만 반환 &amp;rarr; 테스트 통과&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;orphanRemoval = true&lt;/code&gt;는 그대로 유지했다. 공연 삭제 시 &lt;code&gt;cascade = ALL&lt;/code&gt;과 함께 &lt;code&gt;concert_artists&lt;/code&gt;가 자동 삭제되는 동작은 보존해야 하기 때문이다.&lt;br /&gt;&lt;b&gt;update 경로에서만&lt;/b&gt; 명시적 삭제로 우회하는 방식이다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;문제 2 &amp;mdash; Flyway 마이그레이션과 엔티티 불일치&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;증상: 통합 테스트 전체 실패.&lt;/p&gt;
&lt;pre class=&quot;pgsql&quot;&gt;&lt;code&gt;SchemaManagementException: Schema-validation: missing column [created_at] in table [concert_seat_grades]&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;원인: V7(concert_seat_grades) 마이그레이션 SQL에 &lt;code&gt;created_at&lt;/code&gt;, &lt;code&gt;updated_at&lt;/code&gt;, &lt;code&gt;deleted_at&lt;/code&gt; 컬럼을 빠뜨렸다. V8(seats)에는 &lt;code&gt;seat_type&lt;/code&gt; 컬럼을 누락했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;BaseEntity&lt;/code&gt;를 상속하면 자동으로 세 컬럼이 따라온다는 사실을 SQL 작성 시 놓쳤다.&lt;/p&gt;
&lt;pre class=&quot;actionscript&quot;&gt;&lt;code&gt;// BaseEntity
private LocalDateTime createdAt;
private LocalDateTime updatedAt;
private LocalDateTime deletedAt;   // soft delete&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;⚠️ 교훈: 엔티티가 &lt;code&gt;BaseEntity&lt;/code&gt;를 상속할 때 Flyway SQL에 반드시 &lt;code&gt;created_at&lt;/code&gt;, &lt;code&gt;updated_at&lt;/code&gt;, &lt;code&gt;deleted_at&lt;/code&gt;을 포함해야 한다. SQL 작성 직후 엔티티 필드와 대조하는 습관이 필요하다.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  코드 룰로 정착된 것들&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문제를 겪으면서 개인 룰이 하나씩 생겼다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Enum 비교는 ask-style 메소드로&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;gauss&quot;&gt;&lt;code&gt;// Bad
if (concert.status() == CANCELLED || concert.status() == ENDED) { ... }

// Good
if (!concert.isCancellable()) { ... }&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Enum에 의미 있는 boolean 메소드를 정의하고, 호출부는 그것을 그대로 쓴다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;메소드 체이닝은 dot 정렬&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;gradle&quot;&gt;&lt;code&gt;// Bad
return venueService.findAll().stream()
        .map(VenueResponse::from)
        .toList();

// Good
return ApiResponse.ok(venueService.findAll()
                                  .stream()
                                  .map(VenueResponse::from)
                                  .toList());&lt;/code&gt;&lt;/pre&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;선언 / 검증 / 반환 사이 빈 줄&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;reasonml&quot;&gt;&lt;code&gt;ConcertInfo concert = concertService.findById(id);

if (!concert.isCancellable()) {
    throw new IllegalArgumentException(...);
}

return concertService.cancel(id);&lt;/code&gt;&lt;/pre&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  Wrap-up&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;What I learned:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;code&gt;GenerationType.IDENTITY&lt;/code&gt;와 &lt;code&gt;orphanRemoval&lt;/code&gt;을 함께 쓸 때는 스냅샷 불일치를 반드시 고려해야 한다. 컬렉션 전체 교체 로직은 명시적 삭제가 안전하다.&lt;/li&gt;
&lt;li&gt;Flyway SQL 작성 시 &lt;code&gt;BaseEntity&lt;/code&gt; 상속 여부를 항상 확인해야 한다.&lt;/li&gt;
&lt;li&gt;설계는 코드를 짜면서 바뀐다. ConcertSeries 이동처럼, 처음부터 완벽한 설계를 기대하지 않는 것이 오히려 건강한 접근이다.&lt;/li&gt;
&lt;li&gt;Info 패턴과 Facade 패턴은 레이어 의존성을 강제로 지키게 만드는 실용적인 도구였다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;What's next: Phase 2 &amp;mdash; 이 구조 위에 Spring Security + JWT + Redis 인증을 얹는다. 지금 만들어진 레이어 분리가 새 기술 스택을 얼마나 깔끔하게 수용하는지가 진짜 검증 지점이다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;</description>
      <category>토이프로젝트/With Claude</category>
      <category>clean-architecture</category>
      <category>flyway</category>
      <category>Hibernate</category>
      <category>Java21</category>
      <category>JPA</category>
      <category>spring-boot</category>
      <category>TDD</category>
      <category>testcontainers</category>
      <author>나복이</author>
      <guid isPermaLink="true">https://nashs789.tistory.com/199</guid>
      <comments>https://nashs789.tistory.com/199#entry199comment</comments>
      <pubDate>Sun, 5 Apr 2026 16:10:24 +0900</pubDate>
    </item>
    <item>
      <title>[ Life-Log ] 서버 설정 - 도메인 붙이기</title>
      <link>https://nashs789.tistory.com/198</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;이전 프로젝트에서 구성해놓은 세팅이 있는데, 새롭게 도메인 하나 더 구매해서 연결하기로 했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;젠킨스는 이미 설치되어있기 때문에 젠킨스 설치는 패스하고, 새롭게 github 프로젝트 하나 만들어서 초기 스프링부트 프로젝트 하나 올려서 CI/CD 가 제대로 동작 하는지 확인 해야겠다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;443 (https) 는 이전에 Let's Encrypt 이용해서 설정 해놨으니까 이 부분도 패스하고, 프로젝트 세팅 위주로 가야겠다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1763447778815&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;                  (외부)
           https://inbok.shop
           https://nabok.shop
                   │
                   ▼
             ┌─────────────┐
             │   NGINX     │   &amp;larr; Reverse Proxy (80/443 listen)
             └─────┬───────┘
                   │
                   ▼
       ┌─────────────────────────┐
       │ localhost:81 (서비스 A)   │
       │ localhost:82 (서비스 B)   │
       └─────────────────────────┘&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;[  &amp;nbsp; 프로젝트 생성 ]&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일단 새롭게 구매한 도메인이랑 연결할 프로젝트 확인할 수 있게 루트 url 핸들러 가볍게 하나 만들어주고, 서버로 프로젝트 이동 시긴다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1763450913120&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;@GetMapping(&quot;/&quot;)
public String Home() {
    log.info(LocalDateTime.now().toString());

    return &quot;Hello Home !!!&quot; + LocalDateTime.now();
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;로컬에 있는 프로젝트를 내 서버로 옮겨주고&lt;/p&gt;
&lt;pre id=&quot;code_1763451046168&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;scp 이동할_프로젝트.jar 서버계정@서버IP:서버로이동할경로/파일명.jar&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프로젝트 실행&lt;/p&gt;
&lt;pre id=&quot;code_1763451074204&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;java -jar 파일명.jar&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;스프링 서버를 올렸는데 접속이 안된다... 잘 생각 해보니 nginx 설정을 안했다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;[  &amp;nbsp; 도메인 연결 ]&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기존 도메인(inbok) 은 이미 인증서를 발급 했었는데, 새로운 도메인은 안했으니까 인증서를 발급 해준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(나는 sudo 권한을 해놓았음)&lt;/p&gt;
&lt;pre id=&quot;code_1763481013746&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;certbot --nginx -d nabok.shop&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;nginx site-available 에 새로운 도메인 서버 설정 추가 (80, 443 포트 서버 블록들 정리)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사실 이렇게만 해줬으면 끝날줄 알았는데....&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;접속이 안된다...&lt;/p&gt;
&lt;pre id=&quot;code_1763481200302&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;nslookup inbok.shop

[ 결과 ]
Server: 127.0.0.53
Address: 127.0.0.53#53

Non-authoritative answer:
*** Can't find nabok.shop: No answer&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;확인 해보니까 DNS 가 내 서버를 보고있지 않았는데, 생각을 해보니까 가비아에서 구매하고 바로 적용되는게 아니라서 복싱장에 운동하러 갔다왔다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;2 Hours Later...&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 nslookup 으로 확인 해보니까 제대로 되어있는걸 확인 했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그런데 nabok(새로운 도메인) 으로 접속을 시도해도 inbok(기존에 등록한 도메인) 으로 요청이 들어가는 현상이 발생했다...(???)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;sites-enabled 에 새로운 도메인 심링크가 없는 상태여서 nginx 로 nabok.shop 으로 접속해도 443 포트로 등록된게 inbok.shop 밖에 없어서 inbok.shop 으로 계속 이동되는 문제였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;심링크를 생성하고 나니까 문제가 해결 되었다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;[ ⚠️ 웹 브라우저 접속시 문제점 ]&lt;/b&gt;&lt;/h3&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;연결이 비공개로 설정되어 있지 않습니다.&lt;br /&gt;공격자가&amp;nbsp;www.inbok.shop에서&amp;nbsp;사용자의 정보를 도용하려고 시도할 수 있습니다(예: 비밀번호, 메시지, 신용카드 정보). 이 경고에 대해 자세히 알아보기 net::ERR_CERT_COMMON_NAME_INVALID&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사용자 접속 url 은 &lt;a href=&quot;http://www.inbok.shop&quot;&gt;www.inbok.shop&amp;nbsp;&lt;/a&gt; 인데 nginx 에 server_name 에는 inbok.shop 만 작성 해놓음 (인증서가 호스트를 커버하지 못하고 있음)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1763481531391&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;server_name inbok.shop www.inbok.shop&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이런 형태로 변경하니까 해결되었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>토이프로젝트/Life-Log</category>
      <category>nginx</category>
      <category>가비아</category>
      <category>도메인 구매</category>
      <author>나복이</author>
      <guid isPermaLink="true">https://nashs789.tistory.com/198</guid>
      <comments>https://nashs789.tistory.com/198#entry198comment</comments>
      <pubDate>Wed, 19 Nov 2025 16:14:10 +0900</pubDate>
    </item>
    <item>
      <title>[ Life-Log ] 홈 서버 세팅</title>
      <link>https://nashs789.tistory.com/197</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;사실 이전에 리눅스 공부도 하고, 서버로 사용하려고 미니PC 를 구입한 했었는데, 시간이 지나면서 사용하지 않고 있었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://nashs789.tistory.com/138&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://nashs789.tistory.com/138&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1763364533668&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;홈 서버 구축하기 (Home Server)&quot; data-og-description=&quot;  서버 PC 구매하기인텔 N100 칩, 램 16, 저장장치 512, 4코어 4스레드 PC 입니다.뭐 공부하려고 이것 저것 하기 위해서 샀는데 윈도우 11이 설치되어 있어서 먼저 OS 부터 밀어줘야 하겠습니다.  부&quot; data-og-host=&quot;nashs789.tistory.com&quot; data-og-source-url=&quot;https://nashs789.tistory.com/138&quot; data-og-url=&quot;https://nashs789.tistory.com/138&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/ilE3S/hyZNZUIhbi/C4aki8cTO8FiZmqloZ9c2k/img.jpg?width=800&amp;amp;height=1066&amp;amp;face=0_0_800_1066,https://scrap.kakaocdn.net/dn/iFRox/hyZNJKgMj1/XSoxnZ9eKcxwWjKFHklMXK/img.jpg?width=800&amp;amp;height=1066&amp;amp;face=0_0_800_1066,https://scrap.kakaocdn.net/dn/yEyyJ/hyZNWKrWIv/PlKcc7KzYQExzN0ffNfzW0/img.jpg?width=1080&amp;amp;height=1440&amp;amp;face=0_0_1080_1440&quot;&gt;&lt;a href=&quot;https://nashs789.tistory.com/138&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://nashs789.tistory.com/138&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/ilE3S/hyZNZUIhbi/C4aki8cTO8FiZmqloZ9c2k/img.jpg?width=800&amp;amp;height=1066&amp;amp;face=0_0_800_1066,https://scrap.kakaocdn.net/dn/iFRox/hyZNJKgMj1/XSoxnZ9eKcxwWjKFHklMXK/img.jpg?width=800&amp;amp;height=1066&amp;amp;face=0_0_800_1066,https://scrap.kakaocdn.net/dn/yEyyJ/hyZNWKrWIv/PlKcc7KzYQExzN0ffNfzW0/img.jpg?width=1080&amp;amp;height=1440&amp;amp;face=0_0_1080_1440');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;홈 서버 구축하기 (Home Server)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;  서버 PC 구매하기인텔 N100 칩, 램 16, 저장장치 512, 4코어 4스레드 PC 입니다.뭐 공부하려고 이것 저것 하기 위해서 샀는데 윈도우 11이 설치되어 있어서 먼저 OS 부터 밀어줘야 하겠습니다.  부&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;nashs789.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;공유기에 할당되는 공인 IP 가 매번 달라지는데 이전에 설정할 때는 DDNS 설정을 하지 않아서 결국 IP 가 변경되서 이전 저장했던 정보랑은 달라져서 접속이 불가능했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;[   DDNS(Dynamic DNS) 설정 ]&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DNS 서버에 IP 가 변경되면 자동으로 업데이트 해주는 역할을 해주는 no-ip 를 이용하기로 했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;단 한개 DDNS 서비스를 무료로 이용할 수 있기 때문에 서버 한 개만 돌리는 나에게는 딱 필요한 서비스였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저, 공인 IP 로 외부에서 접근할 수 있도록 포트 포워딩을 진행한다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;  포트 포워딩 설정&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;KT 공유기를 사용하기 때문에&amp;nbsp; KT 홈 서버에 접속해서 로그인 해주면 되는데, 처음 접속하는 사람들은 기본 ID/PW 가 있는데, 나는 이전에 접속해서 변경했기 때문에 기억이 나지 않는다...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a title=&quot;KT 홈서버&quot; href=&quot;http://172.30.1.254:8899/login.asp&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;http://172.30.1.254:8899/login.asp&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2025-11-17 오후 5.14.24.png&quot; data-origin-width=&quot;1556&quot; data-origin-height=&quot;1426&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cY4Del/dJMcabihiqP/UxGuInD2lMI6FNhbBZMOF0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cY4Del/dJMcabihiqP/UxGuInD2lMI6FNhbBZMOF0/img.png&quot; data-alt=&quot;[ IP 주소 - 공인 IP ]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cY4Del/dJMcabihiqP/UxGuInD2lMI6FNhbBZMOF0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcY4Del%2FdJMcabihiqP%2FUxGuInD2lMI6FNhbBZMOF0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;404&quot; height=&quot;370&quot; data-filename=&quot;스크린샷 2025-11-17 오후 5.14.24.png&quot; data-origin-width=&quot;1556&quot; data-origin-height=&quot;1426&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[ IP 주소 - 공인 IP ]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;들어가면 바로 공인 IP 확인이 가능하다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2025-11-17 오후 5.24.16.png&quot; data-origin-width=&quot;1530&quot; data-origin-height=&quot;116&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bVHHXh/dJMcafSv2Ab/1FO0kClwUaisCaoRu0ZR4K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bVHHXh/dJMcafSv2Ab/1FO0kClwUaisCaoRu0ZR4K/img.png&quot; data-alt=&quot;[ 장치 설정 - 트래픽 관리 - 포트 포워딩 설정 ]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bVHHXh/dJMcafSv2Ab/1FO0kClwUaisCaoRu0ZR4K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbVHHXh%2FdJMcafSv2Ab%2F1FO0kClwUaisCaoRu0ZR4K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1530&quot; height=&quot;116&quot; data-filename=&quot;스크린샷 2025-11-17 오후 5.24.16.png&quot; data-origin-width=&quot;1530&quot; data-origin-height=&quot;116&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[ 장치 설정 - 트래픽 관리 - 포트 포워딩 설정 ]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;확인한 공인 IP 를 적어주고, 외부에서 접근할 포트는 알아서 적고, ssh 접근을 위한 22 포트로 적으면 된다.&lt;/p&gt;
&lt;pre id=&quot;code_1763368609942&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;ssh 아이디@공인IP&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 먼저 접근해서 확인 해봐도 되고, 키 기반으로 인증을 진행하는 사람은 키 생성, 등록해서 접속 확인해도 괜찮다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;  no-ip DDNS 서비스 설정&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가입 후 공인 IP 를 등록만 해주면 된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2025-11-17 오후 5.38.37.png&quot; data-origin-width=&quot;2036&quot; data-origin-height=&quot;648&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bsRQhM/dJMcagKED2q/VQKq4txN0TAR2KVGBZ6CH1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bsRQhM/dJMcagKED2q/VQKq4txN0TAR2KVGBZ6CH1/img.png&quot; data-alt=&quot;[ no-ip ]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bsRQhM/dJMcagKED2q/VQKq4txN0TAR2KVGBZ6CH1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbsRQhM%2FdJMcagKED2q%2FVQKq4txN0TAR2KVGBZ6CH1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2036&quot; height=&quot;648&quot; data-filename=&quot;스크린샷 2025-11-17 오후 5.38.37.png&quot; data-origin-width=&quot;2036&quot; data-origin-height=&quot;648&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[ no-ip ]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Host: 본인이 사용할 호스트 이름 (아무거나)&lt;/li&gt;
&lt;li&gt;IPv4: 공인 IP&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2025-11-17 오후 5.40.58.png&quot; data-origin-width=&quot;1952&quot; data-origin-height=&quot;690&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dlpDIp/dJMcaiaDmL8/2q5ORCqTXtnYoF99irQaH0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dlpDIp/dJMcaiaDmL8/2q5ORCqTXtnYoF99irQaH0/img.png&quot; data-alt=&quot;[ 장치 설정 - 부가 기능 - DDNS 설정 ]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dlpDIp/dJMcaiaDmL8/2q5ORCqTXtnYoF99irQaH0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdlpDIp%2FdJMcaiaDmL8%2F2q5ORCqTXtnYoF99irQaH0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1952&quot; height=&quot;690&quot; data-filename=&quot;스크린샷 2025-11-17 오후 5.40.58.png&quot; data-origin-width=&quot;1952&quot; data-origin-height=&quot;690&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[ 장치 설정 - 부가 기능 - DDNS 설정 ]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;DDNS 서버: noip.com&lt;/li&gt;
&lt;li&gt;사용자 ID: no-ip 계정&lt;/li&gt;
&lt;li&gt;비밀번호: no-ip 비밀번호&lt;/li&gt;
&lt;li&gt;URL: no-ip 에서 설정한 Host&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 설정 해주면 끝이고, 이제 리눅스 서버에서 no-ip 클라이언트 설치 해주면 된다. (난 GPT 도움을 많이 받음)&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;  도메인 달기&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;매번 공인 IP 를 치고 들어갈 수는 없으니까 도메인 하나 사야서 달아준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지금까지 가비아에서 산 500원 짜리 도메인이 몇 개 째인지...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(이벤트로 구매할 수 있는 500원 짜리 도메인 구매까지는 설명이 없어도 누구나 가능할 것 같고)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2025-11-17 오후 5.47.56.png&quot; data-origin-width=&quot;505&quot; data-origin-height=&quot;279&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/biw7cy/dJMcah3RMYY/oFQZl3PKyVKCcQkY7NrBPK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/biw7cy/dJMcah3RMYY/oFQZl3PKyVKCcQkY7NrBPK/img.png&quot; data-alt=&quot;[ 도메인 관리 - DNS 정보 ]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/biw7cy/dJMcah3RMYY/oFQZl3PKyVKCcQkY7NrBPK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbiw7cy%2FdJMcah3RMYY%2FoFQZl3PKyVKCcQkY7NrBPK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;505&quot; height=&quot;279&quot; data-filename=&quot;스크린샷 2025-11-17 오후 5.47.56.png&quot; data-origin-width=&quot;505&quot; data-origin-height=&quot;279&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[ 도메인 관리 - DNS 정보 ]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;도메인 연결에서 설정 눌러서 설정 페이지로 넘어가서 레코드에 공인 IP 를 넣고 추가 해주면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2025-11-17 오후 5.59.54.png&quot; data-origin-width=&quot;1014&quot; data-origin-height=&quot;237&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dEOqmq/dJMcaaRcUlM/K8r1ILIC7gM0CphX2zltx0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dEOqmq/dJMcaaRcUlM/K8r1ILIC7gM0CphX2zltx0/img.png&quot; data-alt=&quot;[ DNS 설정 - 레코드 추가 ]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dEOqmq/dJMcaaRcUlM/K8r1ILIC7gM0CphX2zltx0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdEOqmq%2FdJMcaaRcUlM%2FK8r1ILIC7gM0CphX2zltx0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1014&quot; height=&quot;237&quot; data-filename=&quot;스크린샷 2025-11-17 오후 5.59.54.png&quot; data-origin-width=&quot;1014&quot; data-origin-height=&quot;237&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[ DNS 설정 - 레코드 추가 ]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;어떻게 확인 할까?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1763370091798&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;ssh 아이디@도메인&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;명령어를 통해서 연결해도 괜찮고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1763370161716&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Host myhome
	HostName 도메인
	User 서버 아이디
	Port 22
	IdentityFile ~/.ssh/id_rsa&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나는 이렇게 rsa 키를 양쪽에 등록하고 ssh myhome 명령어로 간단히 접속 한다.&lt;/p&gt;</description>
      <category>토이프로젝트/Life-Log</category>
      <category>DDNS</category>
      <category>가비아</category>
      <category>도메인</category>
      <category>포트포워딩</category>
      <category>홈서버</category>
      <author>나복이</author>
      <guid isPermaLink="true">https://nashs789.tistory.com/197</guid>
      <comments>https://nashs789.tistory.com/197#entry197comment</comments>
      <pubDate>Mon, 17 Nov 2025 18:04:45 +0900</pubDate>
    </item>
    <item>
      <title>[ Life-Log ] 프로젝트 소개</title>
      <link>https://nashs789.tistory.com/196</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;취미로 복싱장을 다니는데 복싱장 형님들과 디스코드에 매번 운동 일지를 작성하기로 했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;매번 일지를 작성하는데 복싱 뿐만 아니라 러닝이나 다른 운동도 하고, 매번 다르게 작성하거나 필요한 템플릿을 복사해서 붙여넣는게 귀찮아지기 시작하면서 좋은 방법이 없을까 생각 하다가 집에 마침 놀고있는 홈 서버 전용으로 구매했었던 미니 PC 가 생각나서 시작하게 되었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나는 운동이 끝나면 바로바로 작성하고 싶어서 모바일로 보이는 모습도 중요했기 때문에 처음에는 Flutter 나 React Native 도 생각 했었는데, 당장 사용할 기능을 만드는게 먼저인데 MVP 달성을 고려했을 때 러닝 커브가 심해서 할 줄 아는 JSP 를 사용했다. (필요하면 PWA 로 말아서...)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;개발기간: 2025.10.22 ~ 2025.11.16&lt;/li&gt;
&lt;li&gt;Backend
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Java 17&lt;/li&gt;
&lt;li&gt;Spring MVC&lt;/li&gt;
&lt;li&gt;JPA(Hibernate)&lt;/li&gt;
&lt;li&gt;PostgreSQL&lt;/li&gt;
&lt;li&gt;Swagger&lt;/li&gt;
&lt;li&gt;JUnit5, Mockito&lt;/li&gt;
&lt;li&gt;Docker(Test DB)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Frontend
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;JSP&lt;/li&gt;
&lt;li&gt;jQuery&lt;/li&gt;
&lt;li&gt;DataTables&lt;/li&gt;
&lt;li&gt;marked.js&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;DevOps / Infra
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Jenkins CI/CD&lt;/li&gt;
&lt;li&gt;Home Server Deployment&lt;/li&gt;
&lt;li&gt;GitHub push &amp;rarr; Jenkins &amp;rarr; Build &amp;rarr; Deploy&lt;/li&gt;
&lt;li&gt;Docker(Test Environment)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;[   로그인 - OAuth2 ]&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;로그인은 Google 만 OAuth2 만 적용 했는데, 모든 방법이 당장 필요하지는 않아서 일단은 `로그인` 이라는 기능에 집중했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;로그인을 안해도 메세지는 보낼 수 있지만 템플릿을 저장해서 사용하고 싶고, 이력도 모으면 데이터를 가질 수 있어서 가볍게 로그인 기능도 붙여놨다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_Photo_2025-11-17-15-09-09.png&quot; data-origin-width=&quot;1179&quot; data-origin-height=&quot;2556&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cuRoac/dJMb99LwTHE/gsU4NNJFnfdAmc4hUBumPk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cuRoac/dJMb99LwTHE/gsU4NNJFnfdAmc4hUBumPk/img.png&quot; data-alt=&quot;[ 로그인 - 모바일 ]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cuRoac/dJMb99LwTHE/gsU4NNJFnfdAmc4hUBumPk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcuRoac%2FdJMb99LwTHE%2FgsU4NNJFnfdAmc4hUBumPk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;199&quot; height=&quot;431&quot; data-filename=&quot;KakaoTalk_Photo_2025-11-17-15-09-09.png&quot; data-origin-width=&quot;1179&quot; data-origin-height=&quot;2556&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[ 로그인 - 모바일 ]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2025-11-17 오후 3.08.56.png&quot; data-origin-width=&quot;1852&quot; data-origin-height=&quot;1098&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bbX6Zm/dJMcafkF0RA/dQ82KlzpkfKKkvZwKInOTk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bbX6Zm/dJMcafkF0RA/dQ82KlzpkfKKkvZwKInOTk/img.png&quot; data-alt=&quot;[ 로그인 - PC ]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bbX6Zm/dJMcafkF0RA/dQ82KlzpkfKKkvZwKInOTk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbbX6Zm%2FdJMcafkF0RA%2FdQ82KlzpkfKKkvZwKInOTk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;417&quot; height=&quot;247&quot; data-filename=&quot;스크린샷 2025-11-17 오후 3.08.56.png&quot; data-origin-width=&quot;1852&quot; data-origin-height=&quot;1098&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[ 로그인 - PC ]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;[   메인 기능 - 메세지 전송 ]&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;js 라이브러리 마크다운 파서를 이용해서 메세지를 미리볼 수 있도록 했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;`$` 파라미터 기점으로보고 input 창을 만들고, 반복되는 파라미터는 저장해서 사용할 수 있도록 하였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ex) 나는 복싱 운동하기 전에 줄넘기를 항상 3 세트 하니까 3을 저장한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Slack, Discord 채널에 웹훅을 만들고, url&amp;nbsp; 입력해서 버튼 클릭하면 해당 메세지 채널로 보내는 기능이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나는 복싱이랑 조깅을 주로 하는데 템플릿을 저장해서 사용하고 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2025-11-17 오후 3.15.16.png&quot; data-origin-width=&quot;2116&quot; data-origin-height=&quot;2008&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/shHGQ/dJMb99Y33fM/60XqmgYlPNCYBKwr9AB4s0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/shHGQ/dJMb99Y33fM/60XqmgYlPNCYBKwr9AB4s0/img.png&quot; data-alt=&quot;[ 메인 대시보드 - PC ]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/shHGQ/dJMb99Y33fM/60XqmgYlPNCYBKwr9AB4s0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FshHGQ%2FdJMb99Y33fM%2F60XqmgYlPNCYBKwr9AB4s0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;422&quot; height=&quot;400&quot; data-filename=&quot;스크린샷 2025-11-17 오후 3.15.16.png&quot; data-origin-width=&quot;2116&quot; data-origin-height=&quot;2008&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[ 메인 대시보드 - PC ]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_Photo_2025-11-17-15-16-06 002.png&quot; data-origin-width=&quot;1179&quot; data-origin-height=&quot;2556&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NY7FI/dJMb995PHy8/MBhgxy27vBkcbkFO3XWfKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NY7FI/dJMb995PHy8/MBhgxy27vBkcbkFO3XWfKK/img.png&quot; data-alt=&quot;[ 메인 대시보드 - 모바일(1) ]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NY7FI/dJMb995PHy8/MBhgxy27vBkcbkFO3XWfKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNY7FI%2FdJMb995PHy8%2FMBhgxy27vBkcbkFO3XWfKK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;239&quot; height=&quot;518&quot; data-filename=&quot;KakaoTalk_Photo_2025-11-17-15-16-06 002.png&quot; data-origin-width=&quot;1179&quot; data-origin-height=&quot;2556&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[ 메인 대시보드 - 모바일(1) ]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_Photo_2025-11-17-15-16-06 001.png&quot; data-origin-width=&quot;1179&quot; data-origin-height=&quot;2556&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cXEnTf/dJMb99Y33fN/kuK7aUz6koimjK901IvszK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cXEnTf/dJMb99Y33fN/kuK7aUz6koimjK901IvszK/img.png&quot; data-alt=&quot;[ 메인 대시보드 - 모바일(2) ]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cXEnTf/dJMb99Y33fN/kuK7aUz6koimjK901IvszK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcXEnTf%2FdJMb99Y33fN%2FkuK7aUz6koimjK901IvszK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;242&quot; height=&quot;525&quot; data-filename=&quot;KakaoTalk_Photo_2025-11-17-15-16-06 001.png&quot; data-origin-width=&quot;1179&quot; data-origin-height=&quot;2556&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[ 메인 대시보드 - 모바일(2) ]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래처럼 같이 운동하는 형님들과 어떤 운동을 했는지 작성해서 공유하고 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;884&quot; data-origin-height=&quot;1740&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CmBlQ/dJMcaaDFxY4/hI7kFW0C7LX4ZjP6HfYW11/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CmBlQ/dJMcaaDFxY4/hI7kFW0C7LX4ZjP6HfYW11/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CmBlQ/dJMcaaDFxY4/hI7kFW0C7LX4ZjP6HfYW11/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCmBlQ%2FdJMcaaDFxY4%2FhI7kFW0C7LX4ZjP6HfYW11%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;384&quot; height=&quot;756&quot; data-origin-width=&quot;884&quot; data-origin-height=&quot;1740&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;[   게시판 ]&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기본적인 CRUD 는 필요하다고 생가했고, 내가 만든 템플릿을 공유하면 좋겠다고 생각되어서 만들었는데, 지금 와서 돌아보면 단순히 템플릿을 복사하는 기능이 아니라 템플릿을 가져오는 방법으로 만들었으면 더 좋았을거 같다. (사용은 이게 더 편할듯)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2025-11-17 오후 3.56.07.png&quot; data-origin-width=&quot;1822&quot; data-origin-height=&quot;668&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/VwfHL/dJMb99Y34lc/g3MeeySdXljjTTkLPISevK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/VwfHL/dJMb99Y34lc/g3MeeySdXljjTTkLPISevK/img.png&quot; data-alt=&quot;[ 게시판 - PC ]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/VwfHL/dJMb99Y34lc/g3MeeySdXljjTTkLPISevK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FVwfHL%2FdJMb99Y34lc%2Fg3MeeySdXljjTTkLPISevK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;358&quot; height=&quot;131&quot; data-filename=&quot;스크린샷 2025-11-17 오후 3.56.07.png&quot; data-origin-width=&quot;1822&quot; data-origin-height=&quot;668&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[ 게시판 - PC ]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2025-11-17 오후 3.55.57.png&quot; data-origin-width=&quot;1822&quot; data-origin-height=&quot;1926&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/l9Y2N/dJMb99Y34ld/VnYYIUJhst8WhJ9Ok6Xn21/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/l9Y2N/dJMb99Y34ld/VnYYIUJhst8WhJ9Ok6Xn21/img.png&quot; data-alt=&quot;[ 게시글 - PC ]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/l9Y2N/dJMb99Y34ld/VnYYIUJhst8WhJ9Ok6Xn21/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fl9Y2N%2FdJMb99Y34ld%2FVnYYIUJhst8WhJ9Ok6Xn21%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;353&quot; height=&quot;373&quot; data-filename=&quot;스크린샷 2025-11-17 오후 3.55.57.png&quot; data-origin-width=&quot;1822&quot; data-origin-height=&quot;1926&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[ 게시글 - PC ]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;댓글이랑 대댓글은 내가 해본적 없는 기능이라서 같이 넣었고, 조회수는 정책을 어떻게 해야하는지 감을 못잡아서 아직은 작업하지 않았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마찬가지로 좋아요 같은 기능도 아직은 하지 않았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_Photo_2025-11-17-15-59-29 002.png&quot; data-origin-width=&quot;1179&quot; data-origin-height=&quot;2556&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cJDTzx/dJMcagYbPWP/Dq9yvGUB5eAh1rU97Thtuk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cJDTzx/dJMcagYbPWP/Dq9yvGUB5eAh1rU97Thtuk/img.png&quot; data-alt=&quot;[ 게시판 - 모바일 ]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cJDTzx/dJMcagYbPWP/Dq9yvGUB5eAh1rU97Thtuk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcJDTzx%2FdJMcagYbPWP%2FDq9yvGUB5eAh1rU97Thtuk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;216&quot; height=&quot;468&quot; data-filename=&quot;KakaoTalk_Photo_2025-11-17-15-59-29 002.png&quot; data-origin-width=&quot;1179&quot; data-origin-height=&quot;2556&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[ 게시판 - 모바일 ]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_Photo_2025-11-17-15-59-29 001.png&quot; data-origin-width=&quot;1179&quot; data-origin-height=&quot;2556&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bGdZON/dJMcagYbPWO/5MO81s09muQU1zQ4p5W5Ck/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bGdZON/dJMcagYbPWO/5MO81s09muQU1zQ4p5W5Ck/img.png&quot; data-alt=&quot;[ 게시글 - 모바일 ]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bGdZON/dJMcagYbPWO/5MO81s09muQU1zQ4p5W5Ck/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbGdZON%2FdJMcagYbPWO%2F5MO81s09muQU1zQ4p5W5Ck%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;223&quot; height=&quot;483&quot; data-filename=&quot;KakaoTalk_Photo_2025-11-17-15-59-29 001.png&quot; data-origin-width=&quot;1179&quot; data-origin-height=&quot;2556&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[ 게시글 - 모바일 ]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;[   이력조회 ]&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아직 검색 조건이 적용되도록 하지는 않았는데 일단 가볍게 기존 이력들을 볼 수 있는 페이지도 붙여놨다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기획이 따로 없다보니까 하다보면 하나씩 생각나서 붙이다 보니까 새삼 기획의 중요성을 느낀다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2025-11-17 오후 4.08.03.png&quot; data-origin-width=&quot;1822&quot; data-origin-height=&quot;1884&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bSFZyK/dJMcahv1KYT/yLZtgbY92xJ34LVXMvlet0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bSFZyK/dJMcahv1KYT/yLZtgbY92xJ34LVXMvlet0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bSFZyK/dJMcahv1KYT/yLZtgbY92xJ34LVXMvlet0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbSFZyK%2FdJMcahv1KYT%2FyLZtgbY92xJ34LVXMvlet0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;387&quot; height=&quot;400&quot; data-filename=&quot;스크린샷 2025-11-17 오후 4.08.03.png&quot; data-origin-width=&quot;1822&quot; data-origin-height=&quot;1884&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;[   마치며... ]&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나와 내 주변사람들이 루틴처럼 하는 일을 조금 더 편하게 하자는 의미로 시작 했는데, 마치고 나니까 프로젝트에 내가 신경썼던 부분들을 하나씩 기록 해놓는게 좋을거 같아서 프로젝트 세팅부터해서 하나씩 챕터로 만들어서 기록해갈 예정이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다른 프로젝트를 시작하기 전에 기록을 해둬야 까먹지 않을 것 같고, 그 다음 프로젝트 세팅할 때에도 조금 더 편할거 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://github.com/nashs789/daily-log&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://github.com/nashs789/daily-log&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1763363682175&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;object&quot; data-og-title=&quot;GitHub - nashs789/daily-log&quot; data-og-description=&quot;Contribute to nashs789/daily-log development by creating an account on GitHub.&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/nashs789/daily-log&quot; data-og-url=&quot;https://github.com/nashs789/daily-log&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/MRON9/hyZNCqQCsr/KCi6ih4G3NCRds0J0ZNaAk/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600,https://scrap.kakaocdn.net/dn/yR5h8/hyZNVdG8e2/51WVmmOseiYKLyaPL5maXK/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600&quot;&gt;&lt;a href=&quot;https://github.com/nashs789/daily-log&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/nashs789/daily-log&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/MRON9/hyZNCqQCsr/KCi6ih4G3NCRds0J0ZNaAk/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600,https://scrap.kakaocdn.net/dn/yR5h8/hyZNVdG8e2/51WVmmOseiYKLyaPL5maXK/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;GitHub - nashs789/daily-log&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Contribute to nashs789/daily-log development by creating an account on GitHub.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;github.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>토이프로젝트/Life-Log</category>
      <category>Java</category>
      <category>디스코드 메시지</category>
      <category>웹훅</category>
      <category>토이프로젝트</category>
      <author>나복이</author>
      <guid isPermaLink="true">https://nashs789.tistory.com/196</guid>
      <comments>https://nashs789.tistory.com/196#entry196comment</comments>
      <pubDate>Mon, 17 Nov 2025 16:17:20 +0900</pubDate>
    </item>
    <item>
      <title>[ 후기 ] 급류</title>
      <link>https://nashs789.tistory.com/195</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_Photo_2025-07-29-15-48-40.jpeg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1440&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kPteS/btsPDmeiTIG/noMiwHDRhpkqiOrSKWYwP1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kPteS/btsPDmeiTIG/noMiwHDRhpkqiOrSKWYwP1/img.jpg&quot; data-alt=&quot;[ 급류 - 정대건 ]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kPteS/btsPDmeiTIG/noMiwHDRhpkqiOrSKWYwP1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkPteS%2FbtsPDmeiTIG%2FnoMiwHDRhpkqiOrSKWYwP1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;576&quot; height=&quot;768&quot; data-filename=&quot;KakaoTalk_Photo_2025-07-29-15-48-40.jpeg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1440&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[ 급류 - 정대건 ]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;※ 책에대한 스포가 있을 수 있습니다.&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;h4 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;※ 주관적인 생각 입니다.&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;[   서론... ]&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이번년도에 들어서 국내 작가들의 소설들을 여러권 읽었는데 좋은 책들이 많이 있다는걸 다시금 느꼈다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;뭐... 한국이 싫어서 외국 도서만 골라서 읽었던건 아니지만 맨 처음 접한 책이 외국 도서이고 가장 좋아하는 작가가 외국인이니 자연스럽게 그렇게 된 것 같다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;'급류' 라는 책 제목만 보면 내용이 짐작은 안가지만 막상 읽기 시작하니 페이지가 술술 넘어갈 정도로 재밋었다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;다 읽고난 지금 제목을 다시 생각해보면 함축적 의미를 담고 있는 단어인 것 같다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;국산 소설이 좋은점은 배경과 인물을 소개할 때 쉽게 연상되어 좀 더 입체적인 등장인물이 자연스럽게 내 머릿속에 만들어지고 그래서 몰입이 더 잘되는 느낌은 있었다.&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;[   기억나는 장면...&lt;/b&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;b&gt;]&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해솔과 도담이 창석과 미영을 찾아 산을 올라가는 장면에서 나오는 갈등이 나는 개인적으로 재밋었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;[ 도담 ]&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;이성 통제 불가능&lt;/li&gt;
&lt;li&gt;배신감&lt;/li&gt;
&lt;li&gt;창석은 아내가 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;엄마가 병실에 누워있는 상황에서 아빠의 행동에 배신감을 느끼고 창석이 그 댓가를 치뤄야 한다고 생각함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;[ 해솔 ]&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;이성적&lt;/li&gt;
&lt;li&gt;두려움&lt;/li&gt;
&lt;li&gt;미영은 남편이 없음&lt;/li&gt;
&lt;li&gt;상황을 회피하고 싶음&lt;/li&gt;
&lt;li&gt;도담이랑 멀어지고 싶지 않음&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해솔 입장에서는 남편을 잃은 미영이 안타깝고, 창석을 잘 따르고 좋아함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;[ 나 ]&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;처음에는 창석도 상황이 힘들고 새로운 만남에 그럴만하다고 생각 했으나 나라고 생각하고 읽으니 창석이 상당히 못되고 괘씸함을 느낌&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;처음에는 해솔의 입장을 이해되는듯 했지만 제 3자가 아닌 입장에서 보니까 이성을 붙잡기 힘들었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 처해진 입장에 따라서 급변하는 이 책을 읽는 내 스탠스가 재미었다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;[   여러 생각을 하게 만들어주는 글들...&lt;/b&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;b&gt;]&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;해솔의 시계는 멈춰 버렸다.&lt;br /&gt;기계처럼 수업에 출석하고 암기를 하고 시험을 보고 학점을 채우며 아무것도 느끼지 못하는 동안에도 세상은 흘러갔다.&lt;/span&gt;&lt;/b&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사람이 항상 열심히 살아갈 수 있을까?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모든 사람들이 연인과의 결별이 아니어도 시계가 멈춰본적 있지 않을까?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;남자들은 일단 군생활 하면서 자신의 시계가 멈춘적 있을 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래도 국방부의 시계는 움직인다고 말할 정도로 개개인의 시간은 멈춘듯이 정말 천천히 간다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;'무언가의 &lt;b&gt;상실&lt;/b&gt;이 의욕을 잃게 만들게 되는걸까?' 라는 생각이 불현듯 스쳐 지나가서 다시 한 번 생각하게 되었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;상실이 삶의 &lt;b&gt;목표와 방향성&lt;/b&gt;을 잃게해 망망대해 속에서 그저 떠다니는 상황이 되는게 아닐까 싶었던게 목표를 위해서 노력하다보면 시간이 지나가는줄도 모르고 몰두하게 되는데, 확실히 목표 없는 삶은 항상 지루하고 무력해졌던 것 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해솔이 또한 이러한 시간을 겪으면서 해야하는 것 이외에는 전혀 하지 않고 시간만 보내는 그 시간이 무력한 상황이 제대로 전달 되었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나중에 도담가 첫 재회할 때 해솔은 잃어버린 시간이 모두 돌아오는듯한 보상을 받는 기분을 느낀다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;자신이 겪은 일과 비교하며 남의 상처를 가볍게 치부하는 냉소적인 태도는 20대 내내 도담이 극복하려 했던 것이다.&lt;/span&gt;&lt;/b&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다른 사람들도 자신에게 극복해야하는 태도나 성격을 인지하고 극복하기 위해서 노력하고 있을까 궁금해졌다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나 또한 이제 30대로서 많은 실수들을 범해왔고 후회와 눈물로 시간을 보냈던 시간이 적지는 않았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;특히나 고치고 싶었던 중에서&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;하지 않아도 될 말은 하지말것(침묵을 지키는 방법)&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;겉모습만보고 상대를 판단하지말것&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;물론 무수히 많은 안좋은 습관들을 가지고 있지만 당장 기억해서 작성하려고 하니까 기억이 나지 않는다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;특히나 필요하지도 않을 말을 뱉어서 후회한적은 정말 많았고, 아직도 완전하게 통제되지는 않는다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;통제를 해야한다는 강박증은 아니고, 돌이켜보면 해도 상관은 없는 말인데 굳이 말하고나면 뒤늦게 이런말도 했어야했나 싶기는 하다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;[   책에서 벗어났을 때 내 생각...&lt;/b&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;b&gt;]&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;소설을 몰입해서 읽으면서 주인공 두 사람의 애절한 사랑 이야기에 둘의 인연이자 악연은 지독한 족쇄와 같다고 생각하면서 세상의 주인공은 이 둘이라는 생각을 했었다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;하지만 다른 사람들의 입장인 승우, 선화(도담과 해솔이 재회 했을 때 옆에 있던 연인들) 입장에서 보면 도담과 해솔은 세상의 지뢰같은 사람들 아닌가 싶다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;몇 년을 함께해도 머릿속은 항상 다른 사람으로 가득한데 바로 옆에있는 사람에게는 못할짓이 아닌가 싶어 별로 만나고 싶은 사람은 아닌거 같다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;소설을 읽는 독자들 입장에서야 사연있는 두 사람이지 세상에 사연없는 무덤이 어디 있을까...?&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 이제 나이를 먹어서 그런가....&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;20대 초반에 두 사람이 재회했을 때 술과 담배에 찌들고 손목에 자해 흔적과 클럽을 전전하는 회피형인간인 도담을 약대 다니는 해솔이가 고작 어렸을 때 인연이라는 이유로... 아름다웠던 추억 하나로 그 상황을 다 감내하면서 같이 있는게 바보같아 보였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이건 그냥 현대 사회에서 조건부터 보는 찌들은 나의 생각이다...&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;[   이 책을 추천하나요...? ]&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결론은 엄청 재밋게 읽었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나름의 반전들도 있었고, 다음 내용이나 숨겨진 이유를 추측하는 재미도 없지 않았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;300 페이지의 짧은 내용으로 가볍게 읽기도 좋고, 문체가 담백해서 그런가 읽는데 부담이 하나도 안되었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(이유는 모름...이공계라 그런가... 왜 잘 읽혔지)&lt;/p&gt;</description>
      <category>독서/책</category>
      <category>급류</category>
      <category>독서</category>
      <category>소설</category>
      <category>정대건</category>
      <category>후기</category>
      <author>나복이</author>
      <guid isPermaLink="true">https://nashs789.tistory.com/195</guid>
      <comments>https://nashs789.tistory.com/195#entry195comment</comments>
      <pubDate>Tue, 29 Jul 2025 16:50:40 +0900</pubDate>
    </item>
    <item>
      <title>[ 후기 ] 위버멘쉬</title>
      <link>https://nashs789.tistory.com/194</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;458&quot; data-origin-height=&quot;716&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bYyVZv/btsOPoLTkKQ/jwKmuIxuKdMFH3u8XPa8zK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bYyVZv/btsOPoLTkKQ/jwKmuIxuKdMFH3u8XPa8zK/img.jpg&quot; data-alt=&quot;[ 위버멘쉬 ]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bYyVZv/btsOPoLTkKQ/jwKmuIxuKdMFH3u8XPa8zK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbYyVZv%2FbtsOPoLTkKQ%2FjwKmuIxuKdMFH3u8XPa8zK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;359&quot; height=&quot;561&quot; data-origin-width=&quot;458&quot; data-origin-height=&quot;716&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[ 위버멘쉬 ]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;※ 책에대한 스포가 있을 수 있습니다.&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;h4 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;※ 주관적인 생각 입니다.&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;[   서론... ]&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;uuml;bermensch 도대체 어떤 단어일까 궁금해서 검색 해봤다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;GD 의 앨범이 나와서 이게 뭔 상관이지 했었는데 가운데 하얗게 쓰여진 `위버멘쉬` !!&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;705&quot; data-origin-height=&quot;188&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Vjbcx/btsOOyuHdBr/93rjph3FsnKyx3BWkZOjkK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Vjbcx/btsOOyuHdBr/93rjph3FsnKyx3BWkZOjkK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Vjbcx/btsOOyuHdBr/93rjph3FsnKyx3BWkZOjkK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FVjbcx%2FbtsOOyuHdBr%2F93rjph3FsnKyx3BWkZOjkK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;489&quot; height=&quot;489&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;705&quot; data-origin-height=&quot;188&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위키에 정의된 위버멘쉬의 뜻은 아래와 같이 결국 시련을 이겨내고 성장하는 사람 이라는 것 아닐까 싶다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;위버멘쉬(독일어: &amp;Uuml;bermensch / 영어: Overman) 는 프리드리히 니체가 삶의 목표로 제시한 인간상이다.&lt;br /&gt;있는 그대로의 모든 것을 긍정할 줄 알아서 고통마저도 자신을 성장시켜 나가는 기회로 받아들이며 외부의 힘이나 절대자에게 의존하기보다 자신의 삶에 집중하며 스스로의 가치를 창조해 내는 자.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;책을 읽기 전 부터 자기 개발이 중심이 되는 책이라는 예상이 자연스럽게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여타 자기개발서와 같이 너무 진부한 내용만 있지는 않기를 바라며 책을 읽기 시작한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;span style=&quot;color: #0070d1; text-align: start;&quot;&gt;&lt;a href=&quot;https://namu.wiki/w/%EC%9C%84%EB%B2%84%EB%A9%98%EC%89%AC&quot;&gt;https://namu.wiki/w/%EC%9C%84%EB%B2%84%EB%A9%98%EC%89%AC&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;color: #0070d1; text-align: start;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1750776585556&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;위버멘쉬&quot; data-og-description=&quot;파일:friedr_nietzsche.jpg 베르너 호르바스(Werner Horvath) 그림 Friedrich Ni&quot; data-og-host=&quot;namu.wiki&quot; data-og-source-url=&quot;https://namu.wiki/w/%EC%9C%84%EB%B2%84%EB%A9%98%EC%89%AC&quot; data-og-url=&quot;https://namu.wiki/w/%EC%9C%84%EB%B2%84%EB%A9%98%EC%89%AC&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bbDkO6/hyZcoUAqM4/jf152yvMAqEKsdKyfoVAqK/img.jpg?width=264&amp;amp;height=331&amp;amp;face=0_0_264_331&quot;&gt;&lt;a href=&quot;https://namu.wiki/w/%EC%9C%84%EB%B2%84%EB%A9%98%EC%89%AC&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://namu.wiki/w/%EC%9C%84%EB%B2%84%EB%A9%98%EC%89%AC&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bbDkO6/hyZcoUAqM4/jf152yvMAqEKsdKyfoVAqK/img.jpg?width=264&amp;amp;height=331&amp;amp;face=0_0_264_331');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;위버멘쉬&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;파일:friedr_nietzsche.jpg 베르너 호르바스(Werner Horvath) 그림 Friedrich Ni&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;namu.wiki&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;[   여러 생각을 하게 만들어주는 글들...&lt;/b&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;b&gt;]&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;b&gt;진정 강한 사람은 위로를 기다리지 않는다.&lt;/b&gt;&lt;br /&gt;&lt;b&gt;스스로 위로가 될 수 있는 사람이다.&lt;/b&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나는&amp;nbsp;스스로가&amp;nbsp;위로될&amp;nbsp;수&amp;nbsp;있는&amp;nbsp;사람일까?&lt;br /&gt;항상&amp;nbsp;자신감&amp;nbsp;넘치는&amp;nbsp;모습으로&amp;nbsp;살아가는&amp;nbsp;내게&amp;nbsp;힘든&amp;nbsp;시련&amp;nbsp;앞에서&amp;nbsp;나라는&amp;nbsp;존재&amp;nbsp;자체가&amp;nbsp;위로되며&amp;nbsp;살아왔나&amp;nbsp;되돌아보게&amp;nbsp;된다.&lt;br /&gt;&lt;br /&gt;다른&amp;nbsp;사람이&amp;nbsp;바라보는&amp;nbsp;내&amp;nbsp;모습과는&amp;nbsp;다르게&amp;nbsp;나는&amp;nbsp;생각보다&amp;nbsp;여리고&amp;nbsp;감정적인&amp;nbsp;사람이라고&amp;nbsp;지금까지도&amp;nbsp;생각하며&amp;nbsp;살아오고&amp;nbsp;있다.&lt;br /&gt;그저&amp;nbsp;상처가&amp;nbsp;커지지&amp;nbsp;않는&amp;nbsp;법을&amp;nbsp;익혀서&amp;nbsp;남들보다&amp;nbsp;강해&amp;nbsp;보이고,&amp;nbsp;자신감&amp;nbsp;있어&amp;nbsp;보이는&amp;nbsp;게&amp;nbsp;아닐지&amp;nbsp;생각하고&amp;nbsp;있다.&lt;br /&gt;&lt;br /&gt;나는&amp;nbsp;지금까지&amp;nbsp;살아오면서&amp;nbsp;나&amp;nbsp;자신을&amp;nbsp;내가&amp;nbsp;&lt;b&gt;싫어하는&amp;nbsp;상황에&amp;nbsp;밀어&amp;nbsp;넣고&lt;/b&gt;는&amp;nbsp;했다.&lt;br /&gt;예를&amp;nbsp;들자면&amp;nbsp;나는&amp;nbsp;발표를&amp;nbsp;정말&amp;nbsp;못&amp;nbsp;했고,&amp;nbsp;지금도&amp;nbsp;여전히&amp;nbsp;싫어하기는&amp;nbsp;한다.&lt;br /&gt;남들&amp;nbsp;앞에서&amp;nbsp;발표하면&amp;nbsp;말이&amp;nbsp;떨리고,&amp;nbsp;긴장해서&amp;nbsp;배가&amp;nbsp;아프고,&amp;nbsp;다리가&amp;nbsp;떨려서&amp;nbsp;제대로&amp;nbsp;서&amp;nbsp;있기도&amp;nbsp;힘들었던&amp;nbsp;20대&amp;nbsp;초반의&amp;nbsp;시기가&amp;nbsp;있었다.&lt;br /&gt;그래서&amp;nbsp;내가&amp;nbsp;선택한&amp;nbsp;방법은&amp;nbsp;&lt;b&gt;적극적&lt;/b&gt;으로&amp;nbsp;발표할&amp;nbsp;상황을&amp;nbsp;만드는&amp;nbsp;것이었다.&lt;br /&gt;자발적으로&amp;nbsp;손을&amp;nbsp;들어서&amp;nbsp;발표할&amp;nbsp;상황을&amp;nbsp;만들어서&amp;nbsp;불편한&amp;nbsp;상황을&amp;nbsp;만들어&amp;nbsp;익숙해지는&amp;nbsp;것이었다.&lt;br /&gt;지금도&amp;nbsp;이런&amp;nbsp;습관이&amp;nbsp;몸에&amp;nbsp;배서&amp;nbsp;불편한&amp;nbsp;상황이&amp;nbsp;있으면&amp;nbsp;&lt;b&gt;극복&lt;/b&gt;하기&amp;nbsp;위해서&amp;nbsp;그런&amp;nbsp;상황으로&amp;nbsp;&lt;b&gt;의도적&lt;/b&gt;으로&amp;nbsp;만들고는&amp;nbsp;한다.&lt;br /&gt;&lt;br /&gt;이런&amp;nbsp;과정을&amp;nbsp;거치고&amp;nbsp;나니&amp;nbsp;결과적으로&amp;nbsp;모든&amp;nbsp;일에&amp;nbsp;대한&amp;nbsp;해결책은&amp;nbsp;나&amp;nbsp;자신&amp;nbsp;이었고,&amp;nbsp;해결책은&amp;nbsp;내&amp;nbsp;안에&amp;nbsp;있다는&amp;nbsp;사실이&amp;nbsp;스스로가&amp;nbsp;위로될&amp;nbsp;수&amp;nbsp;있지&amp;nbsp;않았을까&amp;nbsp;추측한다.&lt;br /&gt;지금까지&amp;nbsp;생각은&amp;nbsp;안&amp;nbsp;해봤었지만&amp;nbsp;되돌아보니&amp;nbsp;이런&amp;nbsp;과정들이&amp;nbsp;쌓여서&amp;nbsp;지금의&amp;nbsp;결과가&amp;nbsp;만들어진&amp;nbsp;게&amp;nbsp;아닌가&amp;nbsp;생각하는&amp;nbsp;좋은&amp;nbsp;계기가&amp;nbsp;되었다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;지쳤다면 다시 쉬어도 된다.&lt;/span&gt;&lt;/b&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;진짜 특별한 &lt;b&gt;미사여구 없이 담백한 한마디&lt;/b&gt;였지만 오랜만에 큰 위로를 받았다.&lt;br /&gt;사실 요즘 개발자로서 내가 잘하고 있는지 의문이 들던 상황이었고, 그러한 의문들이 쌓이고 괴롭히다 보니 문뜩 다 포기하고 떠나고 싶은 생각이 조금은 들었다.&lt;br /&gt;&lt;br /&gt;나는 개발도 좋아하는 것 같은데 내가 여기서 도망가야 할까, 고민 많이 했었고, 이런 생각들의 뿌리는&lt;b&gt; 강박적으로 성장&lt;/b&gt;하고자 하는 나의 행동들에서 나왔다는 생각이 들었다.&lt;br /&gt;내 결론은 2~3 개월 공부 하지 않고 그냥 쉬자는 것이었고, 덕분에 나는 하던 것 전부 손에서 내려놓고 아무 목표 없이 푹 쉬었다.&lt;br /&gt;&lt;br /&gt;주변 그 누구도 쉬어도 된다는 말은 먼저 해주지 않고, 내 인생을 책임질 수 없다.&lt;br /&gt;그렇지만&amp;nbsp;나는&amp;nbsp;이런&amp;nbsp;담백한&amp;nbsp;말&amp;nbsp;한마디가&amp;nbsp;필요했던&amp;nbsp;것&amp;nbsp;같다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;비교로 성장하는게 아니라 비교를 넘어서는 것&lt;/span&gt;&lt;/b&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가슴이&amp;nbsp;아리는&amp;nbsp;한&amp;nbsp;문장이다.&lt;br /&gt;나는&amp;nbsp;어릴&amp;nbsp;때부터&amp;nbsp;&lt;b&gt;질투심&lt;/b&gt;이&amp;nbsp;정말&amp;nbsp;많았고,&amp;nbsp;많은&amp;nbsp;상황에서&amp;nbsp;&lt;b&gt;독&lt;/b&gt;이&amp;nbsp;되었다.&lt;br /&gt;질투는&amp;nbsp;사람을&amp;nbsp;&lt;b&gt;시기&lt;/b&gt;하게&amp;nbsp;했고,&amp;nbsp;원치&amp;nbsp;않았지만,&amp;nbsp;어느새&amp;nbsp;내&amp;nbsp;눈앞에는&amp;nbsp;&lt;b&gt;색안경&lt;/b&gt;이&amp;nbsp;쓰여서&amp;nbsp;다른&amp;nbsp;시선으로&amp;nbsp;사람들을&amp;nbsp;바라보게&amp;nbsp;되었다.&lt;br /&gt;다행인&amp;nbsp;것은&amp;nbsp;어느&amp;nbsp;기점을&amp;nbsp;지나서&amp;nbsp;남들과의&amp;nbsp;비교를&amp;nbsp;통한&amp;nbsp;&lt;b&gt;열등감&lt;/b&gt;들이&amp;nbsp;내&amp;nbsp;&lt;b&gt;성장&amp;nbsp;동력&lt;/b&gt;이&amp;nbsp;되어서&amp;nbsp;나를&amp;nbsp;더&amp;nbsp;나은&amp;nbsp;사람으로&amp;nbsp;만들어&amp;nbsp;주는&amp;nbsp;&lt;b&gt;밑거름&lt;/b&gt;이&amp;nbsp;되었다.&lt;br /&gt;&lt;br /&gt;하지만&amp;nbsp;나는&amp;nbsp;&lt;b&gt;비교를&amp;nbsp;넘어서는&amp;nbsp;것&lt;/b&gt;&amp;nbsp;자체는&amp;nbsp;생각을&amp;nbsp;해본&amp;nbsp;적이&amp;nbsp;없었다.&lt;br /&gt;이미&amp;nbsp;밑거름을&amp;nbsp;잘&amp;nbsp;작용하고&amp;nbsp;있었기&amp;nbsp;때문에&amp;nbsp;더&amp;nbsp;넘어서는&amp;nbsp;것에&amp;nbsp;대한&amp;nbsp;필요성을&amp;nbsp;느끼지는&amp;nbsp;못했었고,&amp;nbsp;결국&amp;nbsp;남들과&amp;nbsp;함께&amp;nbsp;할&amp;nbsp;때는&amp;nbsp;항상&amp;nbsp;비교가&amp;nbsp;따라왔고,&amp;nbsp;비교의&amp;nbsp;결과는&amp;nbsp;내&amp;nbsp;&lt;b&gt;강박적인&amp;nbsp;성장&lt;/b&gt;으로&amp;nbsp;돌아왔었다.&lt;br /&gt;&lt;br /&gt;강박적인&amp;nbsp;이런&amp;nbsp;마음들은&amp;nbsp;&lt;b&gt;가파른&amp;nbsp;성장&amp;nbsp;곡선&lt;/b&gt;을&amp;nbsp;그리기에는&amp;nbsp;정말&amp;nbsp;좋지만&amp;nbsp;알게&amp;nbsp;모르게&amp;nbsp;사람의&amp;nbsp;마음을&amp;nbsp;파먹고&amp;nbsp;곪게&amp;nbsp;만든다.&lt;br /&gt;오랫동안&amp;nbsp;통제하고&amp;nbsp;성장의&amp;nbsp;발판으로&amp;nbsp;이용하고&amp;nbsp;있었다고&amp;nbsp;생각했지만&amp;nbsp;갑자기는&amp;nbsp;&lt;b&gt;나를&amp;nbsp;좀먹는&amp;nbsp;암&lt;/b&gt;&amp;nbsp;같은&amp;nbsp;존재가&amp;nbsp;되었었는데&amp;nbsp;비교를&amp;nbsp;넘어선다는&amp;nbsp;이&amp;nbsp;문장을&amp;nbsp;곱씹어&amp;nbsp;봐야겠다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;최근에&amp;nbsp;&lt;b&gt;사회&amp;nbsp;풍자&lt;/b&gt;&amp;nbsp;유튜브에&amp;nbsp;아이에게&amp;nbsp;식당에서&amp;nbsp;직원에게&amp;nbsp;감사&amp;nbsp;인사를&amp;nbsp;가르치는&amp;nbsp;장면이&amp;nbsp;나오는데&amp;nbsp;아이는&amp;nbsp;돈&amp;nbsp;내고&amp;nbsp;서비스&amp;nbsp;받는&amp;nbsp;입장에서&amp;nbsp;뭐가&amp;nbsp;감사한지&amp;nbsp;이해를&amp;nbsp;하지&amp;nbsp;못한다.&lt;br /&gt;아마도&amp;nbsp;최근&amp;nbsp;들어서&amp;nbsp;사람들이&amp;nbsp;감사에&amp;nbsp;더&amp;nbsp;인색해지는&amp;nbsp;사회를&amp;nbsp;풍자하기&amp;nbsp;위한&amp;nbsp;스토리인&amp;nbsp;것&amp;nbsp;같은데&amp;nbsp;어떻게&amp;nbsp;보면&amp;nbsp;또&amp;nbsp;틀린&amp;nbsp;말은&amp;nbsp;아니다.&lt;br /&gt;&lt;br /&gt;사람마다&amp;nbsp;다르겠지만&amp;nbsp;나는&amp;nbsp;아직도&amp;nbsp;아파트&amp;nbsp;주민들과&amp;nbsp;인사를&amp;nbsp;하고&amp;nbsp;다니고,&amp;nbsp;아파트&amp;nbsp;대부분의&amp;nbsp;이웃들의&amp;nbsp;얼굴을&amp;nbsp;알고&amp;nbsp;있다.&lt;br /&gt;딱히&amp;nbsp;반가워서&amp;nbsp;인사&amp;nbsp;하냐고&amp;nbsp;하면&amp;nbsp;그건&amp;nbsp;아니고,&amp;nbsp;어릴&amp;nbsp;때부터&amp;nbsp;인사하는&amp;nbsp;게&amp;nbsp;습관이&amp;nbsp;되어서&amp;nbsp;지금까지도&amp;nbsp;마주치면&amp;nbsp;빠짐없이&amp;nbsp;인사를&amp;nbsp;주고받는다.&lt;br /&gt;&lt;br /&gt;반가움&amp;nbsp;뿐만&amp;nbsp;아니라&amp;nbsp;사과,&amp;nbsp;감사&amp;nbsp;모든&amp;nbsp;상황에&amp;nbsp;대해서&amp;nbsp;인사를&amp;nbsp;하게&amp;nbsp;된다.&lt;br /&gt;나는&amp;nbsp;&lt;b&gt;가정&amp;nbsp;교육&lt;/b&gt;을&amp;nbsp;이렇게&amp;nbsp;받았기&amp;nbsp;때문에&amp;nbsp;이게&amp;nbsp;당연한&amp;nbsp;행동인&amp;nbsp;줄&amp;nbsp;알아&amp;nbsp;왔었는데,&amp;nbsp;유튜브를&amp;nbsp;보면서&amp;nbsp;가정&amp;nbsp;환경에&amp;nbsp;따라서&amp;nbsp;누군가에게는&amp;nbsp;간단한&amp;nbsp;인사말&amp;nbsp;하나도&amp;nbsp;이해하지&amp;nbsp;못하는&amp;nbsp;행동이라는걸&amp;nbsp;다시&amp;nbsp;한번&amp;nbsp;깨닫게&amp;nbsp;되면서&amp;nbsp;&lt;b&gt;내가&amp;nbsp;살아가는&amp;nbsp;세상이&amp;nbsp;세상의&amp;nbsp;전부가&amp;nbsp;아니라는&amp;nbsp;생각&lt;/b&gt;을&amp;nbsp;하게&amp;nbsp;된다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;복수를 준비 한다는건 상대의 무덤을 파는 동시에 내 무덤도 동시에 함께 파는 일이다.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;복수로 타인을 짓밟는게 아니라 감정을 극복해 내면의 힘으로 바꾸어 자유로워 지는게 중요하다.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;복수하지 않는건 약해서가 아니라 강한 사람이 가능한 결정이다.&lt;/b&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정말 너무 어려운 주제 &lt;b&gt;복수&lt;/b&gt; 이다....&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;탈리오 법칙&lt;/li&gt;
&lt;li&gt;하무라비 법전 - 눈에는 눈, 이에는 이&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이&amp;nbsp;말들에&amp;nbsp;대해서는&amp;nbsp;전적으로&amp;nbsp;동의하지만,&amp;nbsp;용서&amp;nbsp;하기에는&amp;nbsp;충분히&amp;nbsp;강한&amp;nbsp;사람이&amp;nbsp;아니라서&amp;nbsp;나는&amp;nbsp;반드시&amp;nbsp;복수를&amp;nbsp;해야겠다.&lt;br /&gt;상대&amp;nbsp;무덤과&amp;nbsp;같이&amp;nbsp;내&amp;nbsp;무덤을&amp;nbsp;파는&amp;nbsp;게&amp;nbsp;나쁜&amp;nbsp;일인가?&lt;br /&gt;복수&amp;nbsp;뒤에&amp;nbsp;잠시의&amp;nbsp;&lt;b&gt;후련한&amp;nbsp;뒤에&amp;nbsp;공허함&lt;/b&gt;만&amp;nbsp;남는&amp;nbsp;건&amp;nbsp;누구나&amp;nbsp;공공연하게&amp;nbsp;아는&amp;nbsp;사실이다.&lt;br /&gt;그럼에도&amp;nbsp;나는&amp;nbsp;나에게&amp;nbsp;일어난&amp;nbsp;비극적인&amp;nbsp;일들이&amp;nbsp;없었던&amp;nbsp;것처럼&amp;nbsp;살아가기에는&amp;nbsp;&lt;b&gt;한없이&amp;nbsp;작은&amp;nbsp;사람&lt;/b&gt;이다.&lt;br /&gt;&lt;br /&gt;사람들은&amp;nbsp;누구나&amp;nbsp;안다.&lt;br /&gt;효를&amp;nbsp;중시하고,&amp;nbsp;속세를&amp;nbsp;멀리하고,&amp;nbsp;인의를&amp;nbsp;실천하고,&amp;nbsp;예를&amp;nbsp;중시하는&amp;nbsp;등&amp;nbsp;지켜야&amp;nbsp;할&amp;nbsp;일들을&amp;nbsp;잘&amp;nbsp;지켜주면&amp;nbsp;누구나&amp;nbsp;공자나&amp;nbsp;맹자가&amp;nbsp;될&amp;nbsp;수&amp;nbsp;있는데도&amp;nbsp;누구도&amp;nbsp;쉽게&amp;nbsp;실천하지는&amp;nbsp;못한다.&lt;br /&gt;&lt;b&gt;아는 것과 행하는 건&lt;/b&gt; 다른 일이기 때문에 다는 복수라는 것을 알고 있지만, 언젠가 복수할 일이 생긴다면 반드시 행하고 그 뒤 공허함을 온몸으로 맞이하는 결과를 초래할 것 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이러한&amp;nbsp;생각들은&amp;nbsp;현대&amp;nbsp;한국&amp;nbsp;사회에서&amp;nbsp;죄를&amp;nbsp;제대로&amp;nbsp;심판하지&amp;nbsp;못하는&amp;nbsp;사법&amp;nbsp;체계에&amp;nbsp;대한&amp;nbsp;반발심&amp;nbsp;때문인지는&amp;nbsp;모르겠는데&amp;nbsp;언젠가부터&amp;nbsp;나에게는&amp;nbsp;이런&amp;nbsp;&lt;b&gt;사적인&amp;nbsp;제재&lt;/b&gt;가&amp;nbsp;더&amp;nbsp;낫다는&amp;nbsp;생각이&amp;nbsp;자리&amp;nbsp;잡게&amp;nbsp;되었다.&lt;br /&gt;&lt;br /&gt;죄짓는&amp;nbsp;게&amp;nbsp;더&amp;nbsp;유리한&amp;nbsp;사회가&amp;nbsp;되었는데도&amp;nbsp;&lt;b&gt;성실함과&amp;nbsp;정직함이&amp;nbsp;미덕인&amp;nbsp;집&lt;/b&gt;에서&amp;nbsp;교육받은&amp;nbsp;나에게&amp;nbsp;한순간&amp;nbsp;30년&amp;nbsp;인생을&amp;nbsp;등지고&amp;nbsp;범죄자가&amp;nbsp;되는&amp;nbsp;건&amp;nbsp;어렵지만&amp;nbsp;시선만큼은&amp;nbsp;이미&amp;nbsp;지금의&amp;nbsp;사회&amp;nbsp;체계를&amp;nbsp;&lt;b&gt;부정적&lt;/b&gt;으로&amp;nbsp;바라보고&amp;nbsp;있다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;[   이 책을 추천하나요...? ]&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아무래도&amp;nbsp;니체의&amp;nbsp;사상을&amp;nbsp;베이스로&amp;nbsp;현대적으로&amp;nbsp;재해석한&amp;nbsp;책이기&amp;nbsp;때문에&amp;nbsp;좋은&amp;nbsp;인용구들이&amp;nbsp;많이&amp;nbsp;있었습니다.&lt;br /&gt;엄청&amp;nbsp;진부하지는&amp;nbsp;않지만&amp;nbsp;조금은&amp;nbsp;과하다는&amp;nbsp;생각도&amp;nbsp;조금&amp;nbsp;들었지만,&amp;nbsp;자기계발서의&amp;nbsp;본질을&amp;nbsp;생각했을&amp;nbsp;때&amp;nbsp;살아가면서&amp;nbsp;놓치고&amp;nbsp;잘&amp;nbsp;실천하지&amp;nbsp;못하는&amp;nbsp;부분들을&amp;nbsp;다시&amp;nbsp;한번&amp;nbsp;생각&amp;nbsp;해볼&amp;nbsp;수&amp;nbsp;있는&amp;nbsp;시간을&amp;nbsp;갖기에는&amp;nbsp;더없이&amp;nbsp;좋은&amp;nbsp;책이라고&amp;nbsp;생각됩니다.&lt;br /&gt;&lt;br /&gt;블로그에&amp;nbsp;전부&amp;nbsp;적지는&amp;nbsp;않았지만,&amp;nbsp;위에&amp;nbsp;인용한&amp;nbsp;문장&amp;nbsp;말고도&amp;nbsp;좋은&amp;nbsp;말들이&amp;nbsp;많았지만&amp;nbsp;다&amp;nbsp;적는&amp;nbsp;건&amp;nbsp;조금&amp;nbsp;많아서&amp;nbsp;마음에&amp;nbsp;드는&amp;nbsp;것들로&amp;nbsp;선별해서&amp;nbsp;작성했습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;어제의 '당연함' 이 오늘의 '꼰대 마인드' 로 불리기도 한다.&lt;/span&gt;&lt;/b&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;읽다&amp;nbsp;보면&amp;nbsp;해석하기에&amp;nbsp;따라서&amp;nbsp;조금은&amp;nbsp;올드한&amp;nbsp;꼰대&amp;nbsp;같다는&amp;nbsp;생각도&amp;nbsp;찾아올&amp;nbsp;수&amp;nbsp;있다고&amp;nbsp;생각은&amp;nbsp;되었지만&amp;nbsp;그&amp;nbsp;정도는&amp;nbsp;읽는&amp;nbsp;사람이&amp;nbsp;시대적&amp;nbsp;배경을&amp;nbsp;고려해서&amp;nbsp;읽으면&amp;nbsp;크게&amp;nbsp;문제가&amp;nbsp;될&amp;nbsp;건&amp;nbsp;아니라고&amp;nbsp;생각이&amp;nbsp;됩니다.&lt;br /&gt;&lt;br /&gt;다른&amp;nbsp;관점으로&amp;nbsp;보면&amp;nbsp;그런&amp;nbsp;올드함조차&amp;nbsp;누군가에게는&amp;nbsp;큰&amp;nbsp;깨달음을&amp;nbsp;줄&amp;nbsp;수도&amp;nbsp;있을&amp;nbsp;것&amp;nbsp;같다는&amp;nbsp;생각도&amp;nbsp;갑자기&amp;nbsp;드네요.&lt;br /&gt;꼭&amp;nbsp;읽어야&amp;nbsp;한다고&amp;nbsp;생각은&amp;nbsp;안&amp;nbsp;되는데&amp;nbsp;자기개발서를&amp;nbsp;찾고&amp;nbsp;있다고&amp;nbsp;하면&amp;nbsp;이&amp;nbsp;책이&amp;nbsp;좋은&amp;nbsp;선택이&amp;nbsp;될&amp;nbsp;수&amp;nbsp;있을&amp;nbsp;것&amp;nbsp;같습니다.&lt;/p&gt;</description>
      <category>독서/책</category>
      <category>&amp;Uuml;bermensch</category>
      <category>도서모임</category>
      <category>독서</category>
      <category>위버멘쉬</category>
      <category>자기개발서</category>
      <category>프리드리히 니체</category>
      <category>후기</category>
      <author>나복이</author>
      <guid isPermaLink="true">https://nashs789.tistory.com/194</guid>
      <comments>https://nashs789.tistory.com/194#entry194comment</comments>
      <pubDate>Wed, 25 Jun 2025 01:00:11 +0900</pubDate>
    </item>
    <item>
      <title>[ 후기 ] 모순</title>
      <link>https://nashs789.tistory.com/193</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;400&quot; data-origin-height=&quot;590&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/co3xvN/btsOncEYnh7/kIR7Q9ujZNCxizXO4kK8tk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/co3xvN/btsOncEYnh7/kIR7Q9ujZNCxizXO4kK8tk/img.jpg&quot; data-alt=&quot;[ 모순 - 양귀자 ]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/co3xvN/btsOncEYnh7/kIR7Q9ujZNCxizXO4kK8tk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fco3xvN%2FbtsOncEYnh7%2FkIR7Q9ujZNCxizXO4kK8tk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;400&quot; height=&quot;590&quot; data-origin-width=&quot;400&quot; data-origin-height=&quot;590&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[ 모순 - 양귀자 ]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;※ 책에대한 스포가 있을 수 있습니다.&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;h4 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;※ 주관적인 생각 입니다.&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;[   서론... ]&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;나는 이 책을 10 년 전에 한 번 읽었었다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;읽은걸 기억 못 하는 책도 많지만 이 책은 기억하고 있는게 20살이 되고 내일로 기차여행을 떠날 때 기차 안에서 읽을 책으로 이 책을 선택 했었다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;그 때 당시에는 나는 책의 'ㅊ' 도 몰랐고, 우연히 어떤 유튜버가 읽어주는 줄거리 내용을 통해서 이 책을 읽기로 결심하게 되었다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;그 유튜버의 목소리가 정말 이뻤다고 기억하는데 당연히 누군지 기억은 나지 않는다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;나는 이 책을 여행하는 동안 이동할 때 마다 그리고 숙소에서 읽었고, 내 기억으로는 책을 읽다가 눈물을 흘리면서 몰입했던 기억이 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;그런 기억 덕분에 이번에 읽을 때에는 왜 울었을까 생각 하면서 읽을 수 있었던게 또 하나의 재미 포인트였다.&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;[   여러 생각을 하게 만들어주는 글들...&lt;/b&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;b&gt;]&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;수치스러운 기억이 누군가에게는 재미있는 추억으로 남아있다는 것&lt;/span&gt;&lt;/b&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나이를 먹고 나서는 조금은 무섭게 다가오는 말 이었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나의 우스꽝스러운 모습이 누군가에게 웃음 거리가되고 추억이 되는게 당연할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 자연스러운 상황이 아니라 누군가에 입에서 부터 시작하는 인위적인 상황이 상대에게 상처를 입을 수 있다는 당연한 이치를 나는 너무 늦게 깨달아 버렸던 것 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;알게 모르게 의도하지 않고도 내가 상처 주었던 사람들이 있음을 나중에 알고 나서는 조심하게 되었지만 아직도 조심하고 있는지 확신 하지는 못하고 있다...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;소설에 나오는 안진진 어머니와 이모는 소설의 끝 까지 계속해서 비교 당하며 어머니의 처량한 모습이 이모에게는 그저 순수한 재미가 되는데, 그 사이에 안진진도 그리고 비교 당하는 어머니도 내가 글을 읽는 동안 편치는 않았다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;이 사랑을 멈추라고 통고하지 않았기 때문에 내게는 대답의 의무가 있었다.&lt;/span&gt;&lt;/b&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;안진진의 남자친구 중 한 명인 나영규가 청혼 했을 때 안진진의 생각 이었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내가 놀랐던 건 두 명의 남자친구를 사귀는 안진진이 생각보다 진지하고 책임감 있다는 것이었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;물론 두 명의 남자친구부터... 생각은 해봐야 하는 부분인데 나는 개인적으로는 10년 전 이 책을 읽을 때나 지금 읽을 때나 크게 안진진의 양다리에 불편함은 못 느꼈다. (물론 때려 죽여도 모자라지만)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일단 소설이기도 하고 그 당시 배경을 생각 했을 때 지금보다 사생활에 대해서 개방적이지 않았기 때문에 저런 상황이 많지 않았을까 하는 생각을 하니 크게 불편하지는 않았다. (물론 절대 반대지만 소설로만 보자면)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 책 자체가 읽기 편해서 그런지 내용 자체가 거북하지 않았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다른 책과 비교 해보자면 `채식주의자 - 한강` 에서 영혜와 형부 사이가 훨씬 더 읽기 불편 했었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여튼 문제가 생겼을 때 회피하지 않고 하나씩 해결해가는 안진진 그리고 안진진 어머니가 삶을 대하는 태도 자체가 마음에 들었던 것 같다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;/span&gt;&lt;b&gt;추억 속의 아버지를 사랑하는 마음이 절정에 다다랐을 때 &lt;/b&gt;&lt;br /&gt;&lt;b&gt;현실 속의 내 아버지는 가장 장인한 방법으로 내 추억을 희롱했다.&lt;/b&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;떠돌아 다니던 아버지가 중풍과 치매로 다시 집에 돌아왔을 때 안진진의 생각 이었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내가 10년 전 읽었을 때에는 나에게 누군가가 내 추억을 희롱했다라고 말할만한 기억이 없었는데 이제는 있어서 조금 새로웠다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;관계는 끊겼었지만 같이 있었을 때 정말 좋은 기억들을 만들어준 사람이 다시 연락 해왔을 때 연락을 무시하지 않았었고, 같은 이유로 다시 그 사람을 밀어냈을 때 나는 이와 같이 생각 했었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;떠나 보낼 때 좋았던 추억들이 이제는 더 이상 좋은 추억으로 간직하지 못 할거 같다고 문자로 전달했던 기억이 난다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;좋은 기억마저도 시간이 지난 후 누군가에 의해서 사라질 수 있다는 신기한 경험 이었다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;안진진과 이모의 각별한 사이는 소설속에서 계속해서 묘사된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자기 자식을 더 사랑하는게 당연한 것인데도 불구하고 진심으로 미안해하는 이모의 말이 가슴 아팠고, 그 말에 눈물 흘리는 안진진이 가여웠다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이모에게 가장 필요 했던 안진진과 가끔은 이모가 엄마였으면 하는 안진진에 대해서 생각할 수 있는 부분이었다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;b&gt;'네가 좋아하는 이모' 라는 정도는 향기를 담을 줄 아는 사람이 이모였다.&lt;/b&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 부분 또한 이모와 안진진의 사이에 대해서 생각할 수 있는 부분 이었는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마지막 순간에도 남편도 자식도 아닌 안진진에게 장문의 편지를 남기는 이모와 고작 편지의 시작에서 글에도 작은 향기를 담을 줄 아는 이모의 모습이 보이지 않아서 고민하는 안진진의 모습이 나는 애틋하게 느껴졌다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;[   그 외...? ]&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;  나와 이모&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나는 이모에게 나를 투영 하면서 책을 읽어 나갔다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이모가 흔히들 말하는 대가리 꽃 밭 같이 철 없는 스타일의 인물로 나오는데 이모부와의 결혼 생활이 나는 새장 속 새라는 생각이 많이 들었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나는 새장 속 새와 같은 상황은 아니지만 이모의 숨 막히는 결혼 생활을 공감할 수 있었기 때문에 이모에게 조금 더 마음이 갔었던 것 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 나는 이모의 선택을 이해할 수 있었고 어느정도 예상 했었기 때문에 마지막 반전에 대해서는 크게 놀라지는 않았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;  가난&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우리집도 크게 부유하지 않았고 내 기억 속에서는 사실 가난 했다고 생각하며 자랐다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다만 가난함을 덮을 정도의 부모님의 성실함 덕분에 가난을 모르고 자란게 아닌가 지금까지 생각 하면서 답은 못 내고 있었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그런 이유 때문에 안진진 가족의 끝 없는 가난의 늪이 마음을 힘들게 했었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;심지어 성실함을 갖춘 안진진과 어머니를 끝 없이 방해하는 아버지와 안진모(동생) 덕분에 타의적인 가난함에서 벗어나지 못하고 가족이 서로의 족쇄가 되는 모습에 나는 숨이 막혔다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;[   이 책을 추천하나요...? ]&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;책을 읽으면서 모순이라는 단어에 대해서 계속해서 생각 했었는데 모순이라고 말할만한 내용이 책 속에 정말 많이 녹아있었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 내린 결론은 그냥 '삶' 그 자체가 모순이라는 말을 하고 싶지 않았을까 싶다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;어쩌면 책의 제목은 이 책을 쓴 다음나중에 짓지 않았을까 라는 생각도 했었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;책 자체는 정말 술술 읽혀서 페이지 넘기는지도 모르고 읽었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내용 자체도 크게 자극적이지 않으나 다음 내용이 궁금하고, 기승전결이 나는 완벽하다고 생각했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아무것도 모르는 나도 책 완성도 자체가 높다는 생각을 많이 했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내가 마지막으로 읽은게 10년 전인데 아직도 이 책이 사람들에게 읽히고 있는걸 보면 다른 사람들에게도 좋은 책으로 소개되고 있는게 아닐까?&lt;/p&gt;</description>
      <category>독서/책</category>
      <category>독서</category>
      <category>독서모임</category>
      <category>모순</category>
      <category>양귀자</category>
      <category>책</category>
      <category>추천</category>
      <category>후기</category>
      <author>나복이</author>
      <guid isPermaLink="true">https://nashs789.tistory.com/193</guid>
      <comments>https://nashs789.tistory.com/193#entry193comment</comments>
      <pubDate>Tue, 3 Jun 2025 01:17:29 +0900</pubDate>
    </item>
    <item>
      <title>[ 후기 ] 침묵을 배우는 시간</title>
      <link>https://nashs789.tistory.com/192</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;400&quot; data-origin-height=&quot;579&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eaAB25/btsM5lh1sze/ZfxUpU574zkagYenWbw8K1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eaAB25/btsM5lh1sze/ZfxUpU574zkagYenWbw8K1/img.jpg&quot; data-alt=&quot;[ 침묵을 배우는 시간 - 코르넬리아 토프 ]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eaAB25/btsM5lh1sze/ZfxUpU574zkagYenWbw8K1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeaAB25%2FbtsM5lh1sze%2FZfxUpU574zkagYenWbw8K1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;400&quot; height=&quot;579&quot; data-origin-width=&quot;400&quot; data-origin-height=&quot;579&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[ 침묵을 배우는 시간 - 코르넬리아 토프 ]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;※ 책에대한 스포가 있을 수 있습니다.&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;h4 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;※ 주관적인 생각 입니다.&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-style=&quot;style5&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;[   서론... ]&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;책 제목만으로 끌린건 정말 오랜만이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;특히 독서 모임에서는 좋은 책만 소개하려고 하다 보니까 베스트 셀러 위주로 혹은 화재를 몰고 왔던 책으로 선정 했었는데, 오랜만에 내가 마음 가는 책으로 선정 했고, 반응도 나쁘지 않았다. (휴.. 다행)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;나는 말이 정말 많았고, 사실 아직도 투머치 토커일 때가 많다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;다만 이제는 듣는 역할도 자처해서 할 수 있는 수준이 되었지만 아직도 침묵을 잘 이용 하는게 쉽지 않다고 생각되었는데 마침 이 책을 읽게 되었다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;첫 사회에 나왔을 때에는 말하지 않아도 될 정보도 다 말해서 난처했던 적이 나는 많았고, 그럴 때 마다 집에와서 뜬 눈으로 누워서 후회 하고는 했었던 기억들이 떠올르는 책 이름이라 선택 했을지도...&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;[   여러 생각을 하게 만들어주는 글들...&lt;/b&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;b&gt;]&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;누군가에게 &lt;b&gt;동기&lt;/b&gt;를 부여하고 싶을 때 우리는 열심히 떠든다.&lt;br /&gt;&lt;/span&gt;제아무리 좋은 말로 떠들어봐도 외부에서 온 동기는 &lt;b&gt;효력&lt;/b&gt;이 약할 수 밖에 없고, &lt;b&gt;지속력&lt;/b&gt;도 약하다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;누구나 한 번은 경험했을만한 내용 아닌가?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나는 부모님의 걱정 섞인 조언이 &lt;b&gt;잔소리&lt;/b&gt;로 들렸던 경험이 생각 났다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;경험에서 나온 조언들이 그 당시에는 나에게 귀찮은 소음 이었고, &quot;&lt;b&gt;내가 알아서 해&lt;/b&gt;&quot; 라는 말은 민망할 정도로 아무것도 알아서 하지 못 하고 후회한 경험이 있는 나는 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또 강한 동기부여는 어디서 왔을까?&lt;br /&gt;나는 군 입대 전에는 독서는 해본적 없었고, 공부하는 습관 또한 있지 않았지만 이제는 항상 책을 끼고 살고 있으며, 퇴근 후에도 꾸준히 공부하는 습관이 생겨 버렸다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이런 습관들은 누군가가 나에게 강요해서 생겼을까?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아니다 내가 필요성을 느끼고 스스로 시작했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;물론 침묵이 무슨 상관일까 싶지만 이런 중요한 결정들은 보통은 충분한 생각을 갖을 수 있었던 침묵 뒤에 왔었다고 생각한다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;자네가 팀장이고 내가 자네와 같은 실수를 했다면 나에게 뭐라고 하겠나&lt;/span&gt;&lt;/b&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나는 신입 때 부터 항상 궁금했던 부분이 아래 사람을 대하는 태도였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;윗 사람을 대하는건 내 기준에서는 항상 쉬웠던게 고등 학생 때도, 대학생 때에도, 군일 일 때도 항상 존중해야할 윗 사람은 언제나 존재했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;물론 아랫 사람도 항상 있었지만 아랫 사람에 대한 예절 같은건 배운적 없었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 이렇게 입장을 바꾸어 하급자의 생각을 묻는 것 자체가 상대방에 입장을 헤어려주면서 존중을 보여주는 모습이 아닌가 싶다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;누군가를 몰아 세우기 보다는 내 과거를 생각하며 잠시의 침묵과 함께 내 입장을 정리할 시간을 갖을 수 있는 사람이 되고 싶다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;당신이 아는 것은 중요하다&lt;br /&gt;&lt;/span&gt;하지만 당신이 모르는 것은 더 중요하다&lt;/b&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;예측 불가능한 일&lt;/b&gt;은 &lt;b&gt;내게 없는 지식&lt;/b&gt;으로부터 온다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이미 내가 아는 것은 내가 &lt;b&gt;갖고있는 지식&lt;/b&gt;으로 대처가 가능하다는 말이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;침묵하는 시간 없이 장광하게 떠드는 사람은 새로운 지식에 대한 기회를 놓치기 쉽다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결과적으로 외부 변화에 다른 사람들 보다 취약하게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내 지식을 남들에게 나눠주는 시간도 좋지만 침묵을 통해서 남들의 지식을 얻는 시간도 중요하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인간 사회도 항상 말만하는 사람보다 들어주는 사람의 중요성에 대해서 강조하는 이유도 이러한 이유도 있지 않을까?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;항상 두려움은 무지에서 왔던 것 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;첫 경험은 무서웠지만 두 번째는 이미 왔던 길이라 쉬웠고, 그 뒤로는 익숙해진 길을 편하게 걸어왔던 것 같다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;본능대로 행동한다면 동물과 다를 바 없다&lt;/span&gt;&lt;/b&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;외부 자극&lt;/b&gt;에 침묵 없이 &lt;b&gt;즉각적인 반응&lt;/b&gt;으로 응수 한다면 이성이 아닌 본능을 따르는 결과를 갖는다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내가 가장 심각하게 고민 했던 부분인데 즉각적인 반응으로 이득을 취한적은 단 한번도 없었던 것 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나의 전형적인 '&lt;b&gt;지나고 나서 후회한다&lt;/b&gt;' 패턴이었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;많이 고쳐지긴 했지만 아직 갈 길은 멀었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여전히 욱하는 성격은 다 죽이지 못해서 살아있어 이성적인 판단을 마비 시키는 순간이 한 두번이 아니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제는 항상 즉각적인 반응을 하지는 않는데, 요즘은 가끔 바로 반응이 오지 않으니 재미가 없다는 말도 가끔씩 듣는다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;속으로 생각하는 내 모습이 무반응한 모습으로 보이는 것 같다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;말을 배우는데 2년, 침묵을 배우는데는 평생&lt;/span&gt;&lt;/b&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;어니스트 허밍웨이&lt;/b&gt;의 명언이 책에서도 나온다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내가 처음 침묵을 인지한 순간부터 지금까지 침묵을 잘 이용 하려고 해봤지만 아직도 침묵은 나의 무기가 되지 못했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아직 까지도 이성적인 판단 보다 행동과 반응이 먼저 나가는 나에게는 침묵을 지키는 건 평생의 숙제로 느껴져서 이 명언이 남 일 같지 않게 느껴졌다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;나는 어디로?&lt;/span&gt;&lt;/b&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정적을 피해서 도망다닌 대가로 &lt;b&gt;정체성&lt;/b&gt;을 잃었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;시끄러운 세상 속에서 우리는 &lt;b&gt;감정&lt;/b&gt;을 잃었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;행복은 논리적인 &lt;b&gt;이성&lt;/b&gt;이 아닌 &lt;b&gt;감정&lt;/b&gt;이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;행복은 &lt;b&gt;인지&lt;/b&gt; 하는게 핵심이 아닌 정서를 느끼는데서 시작하기 때문이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나의 경우에 이제는 밥을 먹을 때 유튜브를 틀어놓지 않으면 심심해서 버티질 못하고, 조용한 공간에서도 노래라도 틀어 놓는다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;어떠한 소리도 없는 공간에서 조용함 그 자체를 느꼈던 기억이 이제는 가물가물하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내가 살고있는 시끄러운 이 세계에서 한 발자국 떨어져서 &lt;b&gt;침묵&lt;/b&gt; 속에서 지켜보는 것 만으로도 많은걸 느낄 수 있지 않을까 하는 마음에 적어본다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;b&gt;불평은 목표를 달성할 때까지 멈추지 않는다&lt;/b&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나는 침묵만의 문제는 아니라고 생각 하는데 불평에 대한 이 말은 극히 공감하기 때문에 적어본다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;어떻게 보면 비언어적인 표정과 제스처가 문제일 수 있고, 말하는 화법이 문제일 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 내 생각에는 이게 과연 해결책일까 싶다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;왜냐...? 나는 받아주지 않기 때문에.. 솔직히 이제는 너무 피곤하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나는 이 채워지지 않는 욕망의 끝이 정해져 있다는 것에 공감해서 이야기 해보고 싶었다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;[   이 책을 추천하나요...? ]&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;당연히 책을 읽는다고 바로 대화를 잘 하는 사람이 될 수도 없고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt; 욱하는 성질을 줄일 수 없고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;극적인 상황에서 갑자기 이성적인 사고회로로 상황을 급변하게 만들 수는 없다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 중요한 것은 침묵에 대한 인지이고, 언젠가 한 번은 대화중에 혹은 필요한 상황에 생각나서 침묵을 통해서 조금 더 괜찮은 결과를 만들어 낼 수 있는 가능성이 생긴게 아닐까?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;침묵&lt;/b&gt;은 내가 사회 생활을 시작한 이례로 인생을 살면서 얻고 싶었던 &lt;b&gt;스킬&lt;/b&gt; 이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;많은 순간을 후회하고 나서도 고치지 못했었고, 주워담지 못 하는 실수들을 겪고 나서 뼈에 새겨서야 어느정도 절제하기 시작했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(안전 수칙은 피로 쓰이는데, 내 피는 묽지 않은지 너무 쉽게 지워져서 항상 고민이었다.)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;책 초반부에 비해서 중, 후반은 같은 내용을 반복하는 감이 없지는 않지만 내 기준으로 다행히도 지루하게 질질 끄는 흐름은 아니라서 나와 같은 고민을 한 번이라도 했보았다면 책을 읽는 것을 &lt;b&gt;추천&lt;/b&gt;한다.&lt;/p&gt;</description>
      <category>독서/책</category>
      <category>대화</category>
      <category>독서</category>
      <category>독서모임</category>
      <category>침묵</category>
      <category>침묵을 배우는 시간</category>
      <category>후기</category>
      <author>나복이</author>
      <guid isPermaLink="true">https://nashs789.tistory.com/192</guid>
      <comments>https://nashs789.tistory.com/192#entry192comment</comments>
      <pubDate>Wed, 2 Apr 2025 01:35:41 +0900</pubDate>
    </item>
    <item>
      <title>[Week37] 스터디 회고</title>
      <link>https://nashs789.tistory.com/191</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;슬슬 프로그래머스 LV2 문제 다 풀었지 싶어서 확인 했더니 아직도 52문제나 안풀었다...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;LV3 넘어가긴 해야하는데, 지금도 간간히 풀긴 하지만 주로 푸는 문제는 LV2 라서 고민이 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;스터디 인원들이 슬슬 고착화 되면서 난이도는 계속해서 올라가는 기분은 들어서 문제 난이도가 올라간다고 쉽게 스터디가 와해되지는 않을 것 같은 느낌적인 느낌?&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;LV2 - 지게차와 크레인&lt;/li&gt;
&lt;li&gt;&amp;nbsp;G2 - 칵테일&lt;/li&gt;
&lt;li&gt;&amp;nbsp;G5 - 1로 만들기 2&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;칵테일 문제는 개인적으로 조금 오랫동안 고생하고 결국 다른 풀이도 참조해서 풀었다 ㅎㅎ..&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;[   내 문제 풀이 with Java ]&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;  지게차와 크레인&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래프 문제인데 백준의 치즈나 빙산 같은 문제와 유사한 풀이이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;삭제해야하는 노드를 바로 삭제하면 동작중인 로직에 영향을 주기 때문에 따로 저장 했다가 로직이 끝난 후에 일괄로 삭제 처리 되도록 구현 했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기본적인 그래프 문제라서 크게 어렵거나 시간을 사용하지는 않았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제는 기계적으로 풀 수 있는 유형의 문제&lt;/p&gt;
&lt;pre id=&quot;code_1741705840869&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;/**
 * Author    : Lee In Bok
 * Date      : 2025.03.02(Sun)
 * Runtime   : 22.95 ms
 * Memory    : 94.9 MB
 * Algorithm : Graph Search
 */
package com.year2025.Week37;

import java.util.LinkedList;
import java.util.Queue;

public class LV2_388353 {
    public static void main(String[] args) {
        Solution sol = new Solution();

        System.out.println(
                sol.solution(
                        new String[]{&quot;AZWQY&quot;, &quot;CAABX&quot;, &quot;BBDDA&quot;, &quot;ACACA&quot;},
                        new String[]{&quot;A&quot;, &quot;BB&quot;, &quot;A&quot;}
                )
        );
    }

    static class Solution {

        public static int N;
        public static int M;
        public static int ans;
        public static int[] dx = {0, 1, 0, -1};
        public static int[] dy = {1, 0, -1, 0};

        public int solution(String[] storage, String[] requests) {
            N = storage.length;
            M = storage[0].length();
            Node[][] board = new Node[N + 2][M + 2];
            ans = N * M;

            for(int i = 0; i &amp;lt; N; i++) {
                String[] container = storage[i].split(&quot;&quot;);

                for(int j = 0; j &amp;lt; M; j++) {
                    int x = i + 1;
                    int y = j + 1;

                    board[x][y] = new Node(x, y, container[j]);
                }
            }

            for(String request : requests) {
                String command = Character.toString(request.charAt(0));

                if(request.length() == 1) {
                    useForkLift(board, command);
                } else {
                    useCrane(board, command);
                }
            }

            return ans;
        }

        public static void useForkLift(Node[][] board, String request) {
            Queue&amp;lt;Node&amp;gt; q = new LinkedList&amp;lt;&amp;gt;();
            // 제거 목록을 임시 저장한다. (이유: 로직이 동작하는동안 컨테이너를 빼면 다른 컨테이너가 영향을 받음)
            Queue&amp;lt;Node&amp;gt; shipOutList = new LinkedList&amp;lt;&amp;gt;();
            boolean[][] visited = new boolean[N + 2][M + 2];

            q.add(new Node(0, 0));
            visited[0][0] = true;

            while(!q.isEmpty()) {
                Node curNode = q.poll();

                for(int i = 0; i &amp;lt; 4; i++) {
                    int nextX = curNode.x + dx[i];
                    int nextY = curNode.y + dy[i];
                    
                    if(isValid(nextX, nextY) &amp;amp;&amp;amp; !visited[nextX][nextY]) {
                        visited[nextX][nextY] = true;
                        Node nextNode = new Node(nextX, nextY);
                        
                        // null(= empty)
                        if(board[nextX][nextY] == null) {
                            q.add(nextNode);
                        } else if(board[nextX][nextY].isShipOutTarget(request)) {
                            shipOutList.add(nextNode);
                        }
                    }
                }
            }

            // 제거 목록으로 저장된 컨테이너 좌표 삭제
            while(!shipOutList.isEmpty()) {
                Node target = shipOutList.poll();

                ans--;
                board[target.x][target.y] = null;
            }
        }

        // 크레인은 지형적인 영향을 안받기 때문에 컨테이너 전부 제거
        public static void useCrane(Node[][] board, String request) {
            for(int i = 0; i &amp;lt; board.length; i++) {
                for(int j = 0; j &amp;lt; board[i].length; j++) {
                    if(board[i][j] != null &amp;amp;&amp;amp; request.equals(board[i][j].val)) {
                        ans--;
                        board[i][j] = null;
                    }
                }
            }
        }

        public static boolean isValid(int x, int y) {
            return 0 &amp;lt;= x &amp;amp;&amp;amp; x &amp;lt; N + 2 &amp;amp;&amp;amp; 0 &amp;lt;= y &amp;amp;&amp;amp; y &amp;lt; M + 2;
        }
    }

    static class Node {
        int x;
        int y;
        String val;

        public Node(int x, int y) {
            this.x = x;
            this.y = y;
        }

        public Node(int x, int y, String val) {
            this.x = x;
            this.y = y;
            this.val = val;
        }

        public boolean isShipOutTarget(String val) {
            return this.val.equals(val);
        }
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;  칵테일&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;혼자서 풀 수 있을거 같아서 혼자서 전전긍긍 하다가 최소공배수, 최대공약수 이용하는 문제라는걸 알게 되었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래프 문제라는건 쉽게 알 수 있었는데, 그래프 내에서 각 노드간의 비율을 조율하는 과정이 쉽게 다가오지 않았었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;특히 그래프 탐색을 시작할 때 비율이 정해져 있으니 임의의 노드로 시작할 때 최소 공배수로 값을 세팅하는 부분에서 나는 생각하지 못 했기 때문에 쉽게 풀지 못 했다.&lt;/p&gt;
&lt;pre id=&quot;code_1741706010755&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;/**
 * Author    : Lee In Bok
 * Date      : 2025.03.08(Sat)
 * Runtime   : 120 ms
 * Memory    : 15820 KB
 * Algorithm : Graph, Math
 */

package com.year2025.Week37;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;

public class G2_1033 {

    public static List&amp;lt;Node&amp;gt;[] graph;
    public static boolean[] visited;
    public static long[] ratio;

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st;
        int N = Integer.parseInt(br.readLine());
        long lcm = 1;
        graph = new ArrayList[N];
        visited = new boolean[N];
        ratio = new long[N];

        for(int i = 0; i &amp;lt; N; i++) {
            graph[i] = new ArrayList&amp;lt;&amp;gt;();
        }

        for(int i = 1; i &amp;lt; N; i++) {
            st = new StringTokenizer(br.readLine());

            int a = Integer.parseInt(st.nextToken());
            int b = Integer.parseInt(st.nextToken());
            int p = Integer.parseInt(st.nextToken());
            int q = Integer.parseInt(st.nextToken());

            // 최소 공배수 구하기 (각 노드간의 비율을 맞추기 위해서 필요)
            lcm *= p * q / gcd(p, q);
            graph[a].add(new Node(b, p, q));
            graph[b].add(new Node(a, q, p));
        }

        // 찾고자 하는 N 의 재료를 시작점으로 최소 공배수를 갖고 그래프 탐색을 통해서 노드간 비율에 따라서 조율
        long ggcd = ratio[N - 1] = lcm;
        dfs(N - 1);

        // 조율된 값을 최소 값으로 만들기 위해서 최대 공약수를 구한다.
        for(int i = 0; i &amp;lt; ratio.length; i++) {
            ggcd = gcd(ggcd, ratio[i]);
        }

        // 최대 공약수로 값을 나누어 출력
        for (int i = 0; i &amp;lt; N; i++) {
            System.out.print(ratio[i] / ggcd + &quot; &quot;);
        }
    }

    public static void dfs(int node) {
        visited[node] = true;

        for(Node next : graph[node]) {
            if(!visited[next.b]) {
                // 노드 사이의 정해진 비율에 따라서 값 조율
                ratio[next.b] = ratio[node] * next.q / next.p;
                dfs(next.b);
            }
        }
    }

    public static long gcd(long n1, long n2) {
        return n2 == 0 ? n1 : gcd(n2, n1 % n2);
    }

    static class Node {
       int b;
       int p;
       int q;

        public Node(int b, int p, int q) {
            this.b = b;
            this.p = p;
            this.q = q;
        }
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;  1로 만들기2&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;큐랑 스택을 이용해서 문제를 풀었는데, 풀고 나니까 그래프 문제 같기도 하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래프 문제를 풀 때 큐랑 스택을 자주 이요하기도 하니까 그렇게 느끼는 건가&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;중요한건 1에 도달하는 순간 왔던 경로를 되돌아갈 수 있는 코드를 만들어야 하는 것 이었고, 이런 비슷한 유형을 풀었던 경험이 있어서 배열에 각 노드 이전 노드를 기록 해두었다.&lt;/p&gt;
&lt;pre id=&quot;code_1741706201840&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;/**
 * Author    : Lee In Bok
 * Date      : 2025.03.04(Tue)
 * Runtime   : 180 ms
 * Memory    : 21672 KB
 * Algorithm : Queue, Stack
 */
package com.year2025.Week37;

import java.util.*;

public class G5_12852 {

    public static Queue&amp;lt;Integer&amp;gt; q = new LinkedList&amp;lt;&amp;gt;();
    public static int[] seq;

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        Stack&amp;lt;Integer&amp;gt; stack = new Stack&amp;lt;&amp;gt;();
        StringBuilder sb = new StringBuilder();
        int N = sc.nextInt();

        seq = new int[N + 1];

        search(N);

        int temp = 1;
        stack.push(temp);

        // 역추적: 목표로 하는 1 번 배열방에서 이전 각 요소로 저장된 이전 노드 번호를 타고 간다.
        while(temp != N) {
            stack.push(seq[temp]);
            temp = seq[temp];
        }

        // 경로 사이즈 출력
        System.out.println(stack.size() - 1);

        while(!stack.isEmpty()) {
            sb.append(stack.pop()).append(&quot; &quot;);
        }

        // 경로 출력
        System.out.println(sb);
    }

    public static void search(int N) {
        q.add(N);

        while(!q.isEmpty()) {
            int cur = q.poll();

            if(cur == 1) {
                break;
            }

            if(cur % 3 == 0) {
                addAndCheck(cur, cur / 3);
            }

            if(cur % 2 == 0) {
                addAndCheck(cur, cur / 2);
            }

            addAndCheck(cur, cur - 1);
        }
    }

    // 경로 추적을 위해서 seq 배열에 이전 노드의 번호를 저장 후 다음 노드를 큐에 담는다.
    public static void addAndCheck(int cur, int next) {
        if(seq[next] == 0) {
            seq[next] = cur;  // 다음 숫자에 이전 숫자 기록
            q.add(next);
        }
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;[  아쉬운 점...]&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;칵테일 문제가 혼자서 풀 수 있을 것 같은 느낌이 진짜 물씬 풍겨서 계속 잡고 있었는데, 결국 다른 풀이를 보고 말았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다른 풀이를 보고 푼 것은 아쉽지 않았는데, 오랫동안 잡고 있다가 포기 하니까 아쉬웠다.&lt;/p&gt;</description>
      <category>시간을 보내며.../스터디 운영...</category>
      <category>1로 만들기2</category>
      <category>Java</category>
      <category>백준</category>
      <category>스터디</category>
      <category>알고리즘</category>
      <category>자바</category>
      <category>지게차와 크레인</category>
      <category>칵테일</category>
      <category>코딩테스트</category>
      <category>프로그래머스</category>
      <author>나복이</author>
      <guid isPermaLink="true">https://nashs789.tistory.com/191</guid>
      <comments>https://nashs789.tistory.com/191#entry191comment</comments>
      <pubDate>Wed, 12 Mar 2025 00:19:59 +0900</pubDate>
    </item>
    <item>
      <title>[ 2025 ] 2월 회고록</title>
      <link>https://nashs789.tistory.com/190</link>
      <description>&lt;h3 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;항해&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;항해 교육과정 8 주차 부터 과제 미수행...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사실 중요한 부분은 8 주차부터 인데, 이미 이전 과제부터 불만들이 있었고, 내 시간 쪼개서 하는건데 과제 범위가 내가 생각하는 것과 항상 달라서 시간을 배로 쓰는 상황이 생겼다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;물론 사람들과 소통 하면서 했으면 이런 상황이 생기지 않았을 텐데, 역시 가장 문제점은 내가 많은 시간을 할애하지 못 했다는 점이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;운동 갔다오면 평일에 투자하는 시간이 고작 3 시간이라서 삽질 한 번 잘못하면 타격이 꽤나 컸다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;과제를 안했다고, 수강을 안한건 아니지만 결국 도망치는 선택을 했다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;  알고리즘 스터디&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정확하게 기억은 안나지만 2월 동안 3명은 추방 했던 것 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;새해 계획 시즌이라 어떻게 보면 당연히 예상되었던 부분이라 크게 놀랍지는 않지만 역시 사람 관리가 제일 힘들다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;스터디 난이도는 티가나지 않지만 조금씩은 올라가는 느낌이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음에 스터디원 구할 때에는 난이도를 조금 조정해서 같이 풀 수 있는 사람들 위주로 구인 해봐야겠다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt; &lt;b&gt;&lt;span&gt;&amp;nbsp;취미&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;여전히 독서 모임으로 한 달에 한 권씩 읽고 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;아쉽게도 독서모임 이외의 책은 이제 읽고있지 않다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;사실 읽으려고 사놓은 책이 10권은 대기 중인데... 당근 거래로 싸게 사왔는데 역시나 시간을 핑계삼아 도망 다니는중&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;운동으로는 복싱을 여전히 하고 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;벌써 1년이 다 되어 가는데, 내 취향에 잘 맞는거 같아서 아직도 열심히 하는중이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;다이어트도 겸사겸사 였는데, 어느 시점부터 체중이 줄지 않아서 시작한 식단이 아직까지 유지될지는 몰랐는데, 나 치고는 나름 밸런스있게 유지하고 있다고 생각 중이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;조깅은 하지 못하고 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;추워서... 비와서... 눈와서... 여러가지 핑계로 몸을 쉬고 있는데, 휴식의 달콤함이 한 번 빠지면 다시 되돌아 오는게 정말 힘들다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;가을 날씨에는 10km 씩 주말에 뛰었는데, 요즘은 주말에 카페에서 공부만 하고 그 이외에는 뭐 없다.&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;이력서&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;요즘 몇 개의 공채들이 올라와서 부랴부랴 이력서 작성해서 몇 개 넣어봤는데, 벌써 1개의 탈락 메일을 받았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;많이 쓰지는 않았지만 2월에 넣었던게 전부 탈락한다면, 전략을 바꿔야 할 것 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기업에서는 어떤 이력서를 원하는 걸까...?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SI 업체에 다닐 때도 기록좀 잘 해놓을 걸... 이 시절에 한 업무는 거의 기록이 없어서 이력서 작성이 쉽지는 않다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;✨&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;앞으로는 뭘 할까?&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여전히 현상 유지가 1차 목표.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;부족한 경험을 채워넣을 무언가가 필요한 시기인 것 같기는 한데, 다른 사람들은 이 시점을 어떻게 헤쳐나갔을까...?&lt;/p&gt;</description>
      <category>시간을 보내며.../한 달...</category>
      <category>회고</category>
      <author>나복이</author>
      <guid isPermaLink="true">https://nashs789.tistory.com/190</guid>
      <comments>https://nashs789.tistory.com/190#entry190comment</comments>
      <pubDate>Wed, 5 Mar 2025 01:21:06 +0900</pubDate>
    </item>
  </channel>
</rss>